行と列のコピーは、Excelファイルの操作中に実行される一般的なタスクです。プログラムでExcelファイルの行または列をコピーする必要がある場合があります。このような場合、この記事では、C++を使用してExcelファイルの行と列をコピーする方法について説明します。
- Excelファイルの行と列をコピーするためのC++API
- C++を使用してExcelファイルの単一行をコピーする
- C++を使用してExcelファイルの複数の行をコピーする
- C++を使用してExcelファイルの単一列をコピーする
- C++を使用してExcelファイルの複数の列をコピーする
Excelファイルの行と列をコピーするためのC++API
Aspose.Cells for C++はネイティブC++ライブラリであり、Microsoft Excelをインストールしなくても、Excelファイルを作成、読み取り、変更できます。 APIには、Excelファイルの行と列をコピーする機能もあります。 APIは、NuGetからインストールするか、ダウンロードセクションから直接ダウンロードできます。
PM> Install-Package Aspose.Cells.Cpp
C++を使用してExcelファイルの単一行をコピーする
以下は、次の例で使用するソースExcelファイルの画像です。
以下は、C++を使用してExcelファイルの単一の行をコピーする手順です。
- IWorkbookクラスを使用してExcelファイルをロードします。
- 行をコピーするワークシートを取得します。
- CopyIRow(intrusive_ptrAspose::Cells::ICells sourceCells、Aspose::Cells::Systems::Int32 sourceRowIndex、Aspose::Cells::Systems::Int32 destinationRowIndex)メソッド。
- IWorkbook->Save(intrusive_ptrAspose::Cells::Systems::String fileName)メソッド。
次のサンプルコードは、C++を使用してExcelファイルの行をコピーする方法を示しています。
// ソースディレクトリのパス。
StringPtr srcDir = new String("SourceDirectory\\Excel\\");
// 出力ディレクトリパス。
StringPtr outDir = new String("OutputDirectory\\");
// 入力Excelファイルをロードします
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// 最初のワークシートを取得する
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// 行をコピー
worksheet->GetICells()->CopyIRow(worksheet->GetICells(), 1, 15);
// Excelファイルを保存します
workbook->Save(outDir->StringAppend(new String("CopyRow_out.xlsx")));
C++を使用してExcelファイルの複数の行をコピーする
複数の行をコピーするために、コピーされる行の総数を示す追加のパラメーターを受け入れるCopyIRowsメソッドを使用します。複数の行をコピーするには、以下の手順に従います。
- IWorkbookクラスを使用してExcelファイルをロードします。
- 行をコピーするワークシートを取得します。
- CopyIRows(intrusive_ptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceRowIndex, Aspose::Cells::Systems::Int32 destinationRowIndex, Aspose::Cells::Systems::Int32 rowNumber)メソッド。
- IWorkbook->Save(intrusive_ptrAspose::Cells::Systems::String fileName)メソッド。
次のサンプルコードは、C++を使用してExcelファイルの複数の行をコピーする方法を示しています。
// ソースディレクトリのパス。
StringPtr srcDir = new String("SourceDirectory\\Excel\\");
// 出力ディレクトリパス。
StringPtr outDir = new String("OutputDirectory\\");
// 入力Excelファイルをロードします
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// 最初のワークシートを取得する
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// 行をコピーする
worksheet->GetICells()->CopyIRows(worksheet->GetICells(), 1, 15, 3);
// Excelファイルを保存します
workbook->Save(outDir->StringAppend(new String("CopyRows_out.xlsx")));
C++を使用してExcelファイルの単一列をコピーする
以下は、C++を使用してExcelファイルの単一の列をコピーする手順です。
- IWorkbookクラスを使用してExcelファイルをロードします。
- 列をコピーするワークシートを取得します。
- CopyIColumn(intrusive_ptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceColumnIndex, Aspose::Cells::Systems::Int32 destinationColumnIndex)メソッド。
- IWorkbook->Save(intrusive_ptrAspose::Cells::Systems::String fileName)メソッド。
次のサンプルコードは、C++を使用してExcelファイルの単一の列をコピーする方法を示しています。
// ソースディレクトリのパス。
StringPtr srcDir = new String("SourceDirectory\\Excel\\");
// 出力ディレクトリパス。
StringPtr outDir = new String("OutputDirectory\\");
// 入力Excelファイルをロードします
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// 最初のワークシートを取得する
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// 列をコピー
worksheet->GetICells()->CopyIColumn(worksheet->GetICells(), 0, 6);
// Excelファイルを保存します
workbook->Save(outDir->StringAppend(new String("CopyColumn_out.xlsx")));
C++を使用してExcelファイルの複数の列をコピーする
複数の列をコピーするには、コピーする列の総数を示す追加のパラメーターを受け入れるCopyIColumnsメソッドを使用します。複数の列をコピーするには、以下の手順に従います。
- IWorkbookクラスを使用してExcelファイルをロードします。
- 列をコピーするワークシートを取得します。
- CopyIColumns(intrusive_ptrAspose::Cells::ICells sourceCells, Aspose::Cells::Systems::Int32 sourceColumnIndex, Aspose::Cells::Systems::Int32 destinationColumnIndex, Aspose::Cells::Systems::Int32 columnNumber)メソッド。
- IWorkbook->Save(intrusive_ptrAspose::Cells::Systems::String fileName)メソッド。
次のサンプルコードは、C++を使用してExcelファイルの複数の列をコピーする方法を示しています。
// ソースディレクトリのパス。
StringPtr srcDir = new String("SourceDirectory\\Excel\\");
// 出力ディレクトリパス。
StringPtr outDir = new String("OutputDirectory\\");
// 入力Excelファイルをロードします
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// 最初のワークシートを取得する
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// 列をコピーする
worksheet->GetICells()->CopyIColumns(worksheet->GetICells(), 0, 6, 3);
// Excelファイルを保存します
workbook->Save(outDir->StringAppend(new String("CopyColumns_out.xlsx")));
無料ライセンスを取得する
評価制限なしでAPIを試すために、無料の一時ライセンスをリクエストできます。
結論
この記事では、C++を使用してExcelファイルの行と列をコピーする方法を学習しました。共有コードサンプルは、Excelファイルの単一および複数の行と列をコピーする方法を示しています。これを実現するために、Aspose.Cells for C++APIを使用しました。これは、Excelファイルを操作するための多くの追加機能を提供する堅牢なAPIです。 公式ドキュメントにアクセスすると、APIの詳細を調べることができます。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。