Microsoft Excelでは、空白、コンマ、その他の文字などの区切り文字を使用して、テキストを複数の列に分割できます。この機能は、データベーステーブルからエクスポートされたコンマ区切りのデータを表形式に変換するなどのシナリオで役立ちます。そのために、この記事では、C++を使用してテキストをExcelファイルの列に分割する方法を説明します。
Excelファイルの列にテキストを分割するためのC++API
Aspose.Cells for C++ APIを使用して、テキストをExcelファイルの列に分割します。これは、MicrosoftExcelをインストールしなくてもExcelファイルを作成、読み取り、変更できるネイティブC++ライブラリです。 APIは、NuGetからインストールするか、ダウンロードセクションから直接ダウンロードできます。
PM> Install-Package Aspose.Cells.Cpp
C++を使用してテキストをExcelファイルの列に分割する
以下は、Excelファイルの列にテキストを分割する手順です。
- IWorkbookクラスのインスタンスを作成します。
- IWorkbook->GetIWorksheets()->GetObjectByIndex(Aspose::Cells::Systems::Int32 index)メソッドを使用して、テキストを分割するワークシートにアクセスします。
- サンプルデータをワークシートに挿入します。
- ITxtLoadOptionsクラスのインスタンスを作成します。
- ITxtLoadOptions->SetSeparator(Aspose::Cells::Systems::Char value)メソッドを使用して、テキストを分割するために使用される文字を指定します。
- IWorksheet->GetICells()->TextToColumns(Aspose::Cells::Systems::Int32 row, Aspose::Cells::Systems::Int32 column、Aspose::Cells::Systems::Int32 totalRows, intrusive_ptrAspose::Cells::ITxtLoadOptions options)メソッド。
- IWorkbook->Save(intrusive_ptrAspose::Cells::Systems::String fileName)メソッド。
次のサンプルコードは、C++を使用してテキストをExcelファイルの列に分割する方法を示しています。
// ソースディレクトリのパス。
StringPtr srcDir = new String("SourceDirectory\\");
// 出力ディレクトリパス。
StringPtr outDir = new String("OutputDirectory\\");
// 出力Excelファイルのパス
StringPtr outputFile = outDir->StringAppend(new String("TextToColumns.xlsx"));
// IWorkbookクラスのインスタンスを作成します
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// 最初のワークシートにアクセスする
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// サンプルデータを追加する
intrusive_ptr<String> str = new String("John Teal");
worksheet->GetICells()->GetObjectByIndex(new String("A1"))->PutValue(str);
str = new String("Peter Graham");
worksheet->GetICells()->GetObjectByIndex(new String("A2"))->PutValue(str);
str = new String("Brady Cortez");
worksheet->GetICells()->GetObjectByIndex(new String("A3"))->PutValue(str);
str = new String("Mack Nick");
worksheet->GetICells()->GetObjectByIndex(new String("A4"))->PutValue(str);
str = new String("Hsu Lee");
worksheet->GetICells()->GetObjectByIndex(new String("A5"))->PutValue(str);
// ITxtLoadOptionsクラスのインスタンスを作成します
intrusive_ptr<ITxtLoadOptions> options = Factory::CreateITxtLoadOptions();
// テキストを区切るための区切り文字を指定します
options->SetSeparator(' ');
// テキストを列に分割
worksheet->GetICells()->TextToColumns(0, 0, 5, options);
// 出力Excelファイルを保存します
workbook->Save(outputFile);
無料ライセンスを取得する
評価制限なしでAPIを試すために、無料の一時ライセンスをリクエストできます。
結論
この記事では、C++を使用してExcelファイルのテキストを複数の列に分割する方法を学習しました。これを実現するために必要な手順とともに、完全なコードスニペットを見てきました。 Aspose.Cells for C++は、Excel関連のタスクを自動化するための多くの追加機能を提供する堅牢なAPIです。 公式ドキュメントにアクセスすると、APIの詳細を調べることができます。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。