C++を使用してExcelをCSVに、CSVをExcelに変換する

Excelは、情報を共有するための一般的な形式です。データベースにインポートする必要のあるExcel(XLSまたはXLSX)ファイルにデータがある場合があります。このためには、ExcelファイルをCSV形式に変換する必要があります。一方、データベースからエクスポートされたCSV形式のデータがあり、Excelファイルでさらに操作する必要がある場合があります。このような場合は、CSVファイルをExcel形式に変換する必要があります。この記事では、C++を使用してこれら両方の変換をプログラムで実行する方法を学習します。

ExcelファイルをCSVに、CSVファイルをExcel形式に変換するC++ API

Aspose.Cells for C++は、Excelファイルの作成、読み取り、および変更を可能にするネイティブC++ライブラリです。さらに、APIはExcelファイルのCSV形式への変換およびその逆の変換をサポートしています。 APIは、NuGetからインストールするか、ダウンロードセクションから直接ダウンロードできます。

PM> Install-Package Aspose.Cells.Cpp

C++を使用してExcelファイルをCSV形式に変換する

ExcelファイルをCSV形式に変換するのは、Aspose.Cells for C++APIを使用すると簡単です。以下は、C++を使用してExcelファイルをCSV形式に変換する手順です。

以下は、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形式に変換する場合は、次の手順に従います。

以下は、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")));

// ブックのワークシートを取得します。
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);
}

C++を使用したCSVファイルのExcel形式への変換

以下は、C++を使用してCSVファイルをExcel形式に変換する手順です。

以下は、C++を使用してCSVファイルをExcel形式に変換するためのサンプルコードです。

// ソースディレクトリのパス。
StringPtr srcDir = new String("SourceDirectory\\");

// 出力ディレクトリパス。
StringPtr outDir = new String("OutputDirectory\\");

// CSVLoadOptionsオブジェクトを作成します
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を試すことができます。

結論

この記事では、C++を使用してExcelファイルをCSV形式に変換し、CSVファイルをExcel(XLS / XLSX)形式に変換する方法を学習しました。 Aspose.Cells for C++は、Excelファイルを操作するための多くの追加機能を提供する広大なAPIです。 公式ドキュメントを使用して、APIを詳細に調べることができます。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。

関連項目