Excelワークシートをコピーまたは移動する

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ブック内のワークシートをコピーする手順です。

以下は、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ファイルにワークシートをコピーする手順です。

以下は、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ワークブック内のワークシートの位置を変更する手順です。

以下は、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ファイルを操作するためのさらに多くの機能を提供します。ご不明な点がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。

関連項目