Excelは、情報を共有するための一般的な形式です。データベースにインポートする必要のあるExcel(XLSまたはXLSX)ファイルにデータがある場合があります。このためには、ExcelファイルをCSV形式に変換する必要があります。一方、データベースからエクスポートされたCSV形式のデータがあり、Excelファイルでさらに操作する必要がある場合があります。このような場合は、CSVファイルをExcel形式に変換する必要があります。この記事では、C++を使用してこれら両方の変換をプログラムで実行する方法を学習します。
- ExcelファイルをCSVに、CSVファイルをExcel形式に変換するC++ API
- C++を使用してExcelファイルをCSV形式に変換する
- ExcelワークシートをCSVファイルに変換する
- C++を使用してCSVファイルをExcel形式に変換する
- 無料ライセンスを取得する
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形式に変換する手順です。
- IWorkbookクラスを使用してExcelファイルをロードします。
- IWorkbook->Save(intrusive_ptr)Aspose::Cells::Systems::String fileName, Aspose::Cells::SaveFormat saveFormat) メソッドを使用して、ファイルを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形式に変換する場合は、次の手順に従います。
- IWorkbookクラスを使用してExcelファイルをロードします。
- IWorkbook->GetIWorksheets()メソッドを使用してワークシートを取得します。
- 取得したワークシートをループします。
- ループ内で、特定のワークシートをCSVファイルに変換するカスタムロジックを指定できます。このデモでは、すべてのワークシートがCSVファイルに変換されます。
- IWorkbook->GetIWorksheets()->GetObjectByIndex(Aspose::Cells::Systems::Int32 index)メソッドを使用して変換するワークシートを取得します。
- IWorkbookクラスのインスタンスを作成して、新しいCSVファイルを表します。
- Workbook->GetWorksheets()->GetObjectByIndex(0)->Copy(intrusive_ptrAspose::Cells::IWorksheet sourceSheet)メソッドを使用して、以前に取得したワークシートを新しいworkbookインスタンスにコピーします。
- IWorkbook->Save(intrusive_ptrAspose::Cells::Systems::String fileName, Aspose::Cells::SaveFormat saveFormat)メソッドを使用して、新しいワークブックを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形式に変換する手順です。
- ILoadOptionsクラスのインスタンスを作成します。
- 前に作成したILoadOptionsインスタンスを使用して、IWorkbookクラスのオブジェクトを作成します。
- IWorkbook->Save(intrusive_ptrAspose::Cells::Systems::String fileName, Aspose::Cells::SaveFormat saveFormat)メソッドを使用して、ファイルを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を詳細に調べることができます。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。