Преобразование Excel в CSV и CSV в Excel с помощью C++

Excel — популярный формат для обмена информацией. Вы можете оказаться в ситуации, когда у вас есть данные в файле Excel (XLS или XLSX), которые необходимо импортировать в базу данных. Для этого вам необходимо преобразовать файл Excel в формат CSV. С другой стороны, у вас могут быть данные в формате CSV, экспортированные из базы данных, которые вам нужно будет обработать в файле Excel. В таких случаях вам необходимо преобразовать файл CSV в формат Excel. В этой статье вы узнаете, как выполнить оба эти преобразования программно с помощью C++.

C++ API для преобразования файлов Excel в файлы CSV и CSV в формат Excel

Aspose.Cells for C++ — это собственная библиотека C++, позволяющая создавать, читать и изменять файлы Excel. Кроме того, API поддерживает преобразование файлов Excel в формат CSV и наоборот. Вы можете либо установить API через NuGet, либо загрузить его напрямую из раздела Загрузки.

PM> Install-Package Aspose.Cells.Cpp

Преобразование файлов Excel в формат CSV с помощью C++

Преобразование файлов Excel в формат CSV очень просто с Aspose.Cells for C++ API. Ниже приведены шаги для преобразования файлов Excel в формат CSV с помощью C++.

Ниже приведен пример кода для преобразования файлов Excel в формат CSV.

// Путь к исходному каталогу.
StringPtr srcDir = new String("SourceDirectory\\");

// Выходной путь к каталогу.
StringPtr outDir = new String("OutputDirectory\\");

// Загрузите исходный файл Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Сохранить выходной CSV-файл
workbook->Save(outDir->StringAppend(new String("Sample1_out.csv")), SaveFormat_CSV);

Преобразование рабочих листов Excel в файлы CSV

В предыдущем примере преобразуется только первый лист, если файл Excel содержит несколько листов. Если вы хотите преобразовать несколько рабочих листов в формат CSV, вы можете выполнить следующие шаги.

Ниже приведен пример кода для преобразования листов Excel в файлы CSV с помощью C++.

// Путь к исходному каталогу.
StringPtr srcDir = new String("SourceDirectory\\");

// Выходной путь к каталогу.
StringPtr outDir = new String("OutputDirectory\\");

// Загрузите файл Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Получить рабочие листы рабочей книги.
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// Создайте объект построителя строк для конкатенации строк.
intrusive_ptr<Aspose::Cells::Systems::Text::StringBuilder> stringBuilder = new Aspose::Cells::Systems::Text::StringBuilder();

for (int sheet = 0; sheet < sheets->GetCount(); sheet++)
{
	// Получить рабочий лист для копирования
	intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(sheet);

	// Создайте экземпляр класса IWorkbook для представления новой книги.
	intrusive_ptr<IWorkbook> newWorkbook = Factory::CreateIWorkbook();

	// Скопируйте ранее полученный лист в новую книгу.
	newWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);

	// Очистите построитель строк и создайте выходной путь с конкатенацией строк.
	stringBuilder->Clear();
	stringBuilder->Append(outDir);
	stringBuilder->Append((StringPtr)new String("Sample1_sheet_"));
	stringBuilder->Append(sheet);
	stringBuilder->Append((StringPtr)new String("_out.csv"));

	// Сохранить выходной CSV-файл
	newWorkbook->Save(stringBuilder->ToString(), SaveFormat_CSV);
}

Преобразование файлов CSV в формат Excel с помощью C++

Ниже приведены шаги для преобразования файлов CSV в формат Excel с помощью C++.

Ниже приведен пример кода для преобразования файлов CSV в формат Excel с помощью C++.

// Путь к исходному каталогу.
StringPtr srcDir = new String("SourceDirectory\\");

// Выходной путь к каталогу.
StringPtr outDir = new String("OutputDirectory\\");

// Создать объект CSV LoadOptions
intrusive_ptr<ILoadOptions> loadOptions = Factory::CreateILoadOptions(LoadFormat_CSV);

// Загрузите исходный файл Excel
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.csv")), loadOptions);

// Сохранить выходной CSV-файл
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")), SaveFormat_Xlsx);

Получить бесплатную лицензию

Вы можете попробовать API без ограничений по ознакомительной версии, запросив бесплатную временную лицензию.

Вывод

В этой статье вы узнали, как конвертировать файлы Excel в формат CSV и файлы CSV в формат Excel (XLS/XLSX) с помощью C++. Aspose.Cells for C++ — это обширный API, предоставляющий множество дополнительных функций для работы с файлами Excel. Вы можете подробно изучить API, используя официальную документацию. Если у вас возникнут вопросы, свяжитесь с нами на нашем бесплатном форуме поддержки.

Смотрите также