Excelファイルは、部門の予算や年間売上レポートなどの複雑なデータを管理するために使用されます。レポートの作成に使用する既製のテンプレートがある場合があります。このために、テンプレートワークシートのコピーを作成できます。また、データの流れを示すためにワークシートを整理する必要がある場合もあります。このような場合、要件に応じてワークシートを再配置できます。これに照らして、C++を使用してプログラムでワークシートをコピーおよび移動する方法を学習します。
- Excelワークシートをコピーまたは移動するためのC++API
- C++を使用してExcelブック内のワークシートをコピーする
- あるワークブックから別のワークブックにワークシートをコピーする
- C++を使用してワークシートを別の位置に移動します
- 無料ライセンスを取得する
Excelワークシートをコピーまたは移動するためのC++API
Aspose.Cells for C++はネイティブC++ライブラリであり、Microsoft Excelをインストールしなくても、Excelファイルを作成、読み取り、更新できます。 APIは、Excelワークシートのコピーと移動もサポートしています。 APIは、NuGetからインストールするか、ダウンロードセクションから直接ダウンロードできます。
PM> Install-Package Aspose.Cells.Cpp
C++を使用してExcelブック内のワークシートをコピーする
以下は、Excelブック内のワークシートをコピーする手順です。
- IWorkbookクラスを使用してExcelファイルをロードします。
- IWorkbook->GetIWorksheets()メソッドを使用してワークシートコレクションを取得します。
- IWorksheetCollection->AddCopy(intrusive_ptrAspose::Cells::Systems::String sheetName)メソッド。
- 最後に、IWorkbook->Save(intrusive_ptrAspose::Cells::Systems::String fileName)メソッド。
以下は、C++を使用してExcelブック内のワークシートをコピーするためのサンプルコードです。
// ソースディレクトリのパス。
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();
// ブック内の既存のシートから新しいシートにデータをコピーします。
sheets->AddCopy(new String("Sheet1"));
// Excelファイルを保存します
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));
あるワークブックから別のワークブックにワークシートをコピーする
Aspose.Cells for C++では、2つのExcelファイル間でワークシートをコピーすることもできます。以下は、あるExcelファイルから別のExcelファイルにワークシートをコピーする手順です。
- まず、IWorkbookクラスを使用してソースと宛先のExcelファイルをロードします。
- IWorkbook->GetIWorksheets()メソッドを使用して、ソースワークブックのワークシートコレクションを取得します。
- IWorksheetCollection->GetObjectByIndex(Aspose::Cells::Systems::Int32 index)メソッドを使用して、コピーするワークシートを取得します。
- IWorkbook->GetIWorksheets()->GetObjectByIndex(Aspose::Cells::Systems::Int32 index)->Copy(intrusive_ptrAspose::Cells::IWorksheet sourceSheet)メソッド。
- 最後に、IWorkbook->Save(intrusive_ptrAspose::Cells::Systems::String fileName)メソッド。
以下は、C++を使用して1つのExcelブックから別のブックにワークシートをコピーするためのサンプルコードです。
// ソースディレクトリのパス。
StringPtr srcDir = new String("SourceDirectory\\");
// 出力ディレクトリパス。
StringPtr outDir = new String("OutputDirectory\\");
// ソースExcelファイルをロードします
intrusive_ptr<IWorkbook> sourceWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));
// 宛先Excelファイルをロードします
intrusive_ptr<IWorkbook> destinationWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("book1.xlsx")));
// ソースワークブックのワークシートを取得する
intrusive_ptr<IWorksheetCollection> sheets = sourceWorkbook->GetIWorksheets();
// コピーするワークシートを取得します
intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(0);
// 以前に取得したワークシートを新しいブックにコピーします
destinationWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);
// Excelファイルを保存します
destinationWorkbook->Save(outDir->StringAppend(new String("book1_out.xlsx")));
C++を使用してワークシートを別の位置に移動します
以下は、Excelワークブック内のワークシートの位置を変更する手順です。
- IWorkbookクラスを使用してExcelファイルをロードします。
- IWorkbook->GetIWorksheets()メソッドを使用してワークシートコレクションを取得します。
- IWorksheetCollection->GetObjectByIndex(Aspose::Cells::Systems::Int32 index)メソッドを使用して、移動するワークシートを取得します。
- IWorksheet->MoveTo(Aspose::Cells::Systems::Int32 index)メソッドを使用して、ワークシートを目的の場所に移動します。
- 最後に、IWorkbook->Save(intrusive_ptrAspose::Cells::Systems::String fileName)メソッド。
以下は、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<IWorksheet> sheet = sheets->GetObjectByIndex(0);
// 最初のシートをブックの2番目の位置に移動します。
sheet->MoveTo(1);
// Excelファイルを保存します
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));
無料ライセンスを取得する
無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを試すことができます。
結論
この記事では、同じExcelブック内または異なるブック間でワークシートをコピーする方法を学習しました。さらに、Excelファイル内のワークシートの位置を変更する方法を見てきました。 Aspose.Cells for C++は、公式ドキュメントにアクセスして調べることができるExcelファイルを操作するためのさらに多くの機能を提供します。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。