Converter Excel para CSV e CSV para Excel usando C++

O Excel é um formato popular para compartilhar informações. Você pode se deparar com situações em que tem dados em um arquivo Excel(XLS ou XLSX) que precisa importar para um banco de dados. Para isso, você precisaria converter o arquivo Excel para o formato CSV. Por outro lado, você pode ter dados no formato CSV exportados de um banco de dados que você precisa manipular ainda mais em um arquivo do Excel. Para esses casos, você precisaria converter o arquivo CSV para o formato Excel. Neste artigo, você aprenderá como realizar essas duas conversões programaticamente usando C++.

API C++ para converter arquivos do Excel para CSV e arquivos CSV para o formato Excel

Aspose.Cells for C++ é uma biblioteca nativa de C++ que permite criar, ler e modificar arquivos Excel. Além disso, a API suporta a conversão de arquivos do Excel para o formato CSV e vice-versa. Você pode instalar a API por meio do NuGet ou baixá-la diretamente da seção Downloads.

PM> Install-Package Aspose.Cells.Cpp

Convertendo arquivos do Excel para o formato CSV usando C++

Converter arquivos do Excel para o formato CSV é muito fácil com o Aspose.Cells for C++ API. A seguir estão as etapas para converter arquivos do Excel para o formato CSV usando C++.

Veja a seguir o código de exemplo para converter arquivos do Excel para o formato CSV.

// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\");

// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");

// Carregar o arquivo Excel de entrada
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Salvar arquivo CSV de saída
workbook->Save(outDir->StringAppend(new String("Sample1_out.csv")), SaveFormat_CSV);

Converter planilhas do Excel para arquivos CSV

O exemplo anterior converte apenas a primeira planilha se o arquivo do Excel contiver várias planilhas. Caso você queira converter várias planilhas para o formato CSV, siga as etapas a seguir.

Veja a seguir o código de exemplo para converter planilhas do Excel em arquivos CSV usando C++.

// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\");

// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");

// Carregar o arquivo Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Recupere as planilhas da pasta de trabalho.
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// Crie um objeto construtor de strings para concatenações de strings.
intrusive_ptr<Aspose::Cells::Systems::Text::StringBuilder> stringBuilder = new Aspose::Cells::Systems::Text::StringBuilder();

for (int sheet = 0; sheet < sheets->GetCount(); sheet++)
{
	// Recuperar a planilha para copiar
	intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(sheet);

	// Crie uma instância da classe IWorkbook para representar a nova pasta de trabalho
	intrusive_ptr<IWorkbook> newWorkbook = Factory::CreateIWorkbook();

	// Copie a planilha recuperada anteriormente para a nova pasta de trabalho
	newWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);

	// Limpe o construtor de strings e crie o caminho de saída com concatenações de strings.
	stringBuilder->Clear();
	stringBuilder->Append(outDir);
	stringBuilder->Append((StringPtr)new String("Sample1_sheet_"));
	stringBuilder->Append(sheet);
	stringBuilder->Append((StringPtr)new String("_out.csv"));

	// Salvar arquivo CSV de saída
	newWorkbook->Save(stringBuilder->ToString(), SaveFormat_CSV);
}

Convertendo arquivos CSV para o formato Excel usando C++

A seguir estão as etapas para converter arquivos CSV para o formato Excel usando C++.

Veja a seguir o código de exemplo para converter arquivos CSV para o formato Excel usando C++.

// Caminho do diretório de origem.
StringPtr srcDir = new String("SourceDirectory\\");

// Caminho do diretório de saída.
StringPtr outDir = new String("OutputDirectory\\");

// Criar objeto CSV LoadOptions
intrusive_ptr<ILoadOptions> loadOptions = Factory::CreateILoadOptions(LoadFormat_CSV);

// Carregar o arquivo Excel de entrada
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.csv")), loadOptions);

// Salvar arquivo CSV de saída
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")), SaveFormat_Xlsx);

Obtenha uma licença gratuita

Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como converter arquivos do Excel para o formato CSV e arquivos CSV para o formato Excel (XLS/XLSX) usando C++. Aspose.Cells para C++ é uma vasta API que fornece muitos recursos adicionais para trabalhar com arquivos do Excel. Você pode explorar a API em detalhes usando a documentação oficial. Em caso de dúvidas, sinta-se à vontade para entrar em contato conosco em nosso fórum de suporte gratuito.

Veja também