C#でExcelワークシートをコピーする

場合によっては、Excelブック内またはあるブックから別のブックにワークシートをコピーする必要があります。一方、ワークシートを移動してブック内の位置を変更することも、さまざまなシナリオで必要になります。上記のタスクをプログラムで実行するために、この記事では、C#を使用してブック内でExcelワークシートをコピーする方法を示します。さらに、Excelブック内のワークシートの位置を変更する方法についても説明します。

ExcelワークシートをコピーするためのC#API

ワークシートをExcelファイルにコピーするために、Aspose.Cells for .NETの強力なスプレッドシート操作機能を活用します。 APIは、.NETアプリケーション内からExcelファイルを生成および処理するためのさまざまな機能を提供します。 APIのバイナリをダウンロードするか、NuGetを使用してインストールできます。

PM> Install-Package Aspose.Cells

C#を使用してExcelワークシートをコピーする

以下は、C#を使用してブック内にExcelワークシートをコピーする手順です。

次のコードサンプルは、Excelワークシートをブックにコピーする方法を示しています。

// 既存のExcelファイルを開く
Workbook wb = new Workbook("workbook.xlsx");

// ブックのシートを参照してWorksheetCollectionオブジェクトを作成します
WorksheetCollection sheets = wb.Worksheets;

// ブック内の既存のシートから新しいシートにデータをコピーします
sheets.AddCopy("Sheet1");

// Excelファイルを保存します
wb.Save("CopyWithinWorkbook.xlsx");

あるワークブックから別のワークブックにExcelワークシートをコピーする

それでは、あるExcelブックから別のブックにワークシートをコピーする方法を見てみましょう。この操作を実行する手順は次のとおりです。

次のコードサンプルは、C#でワークシートをあるワークブックから別のワークブックにコピーする方法を示しています。

// オープンソースのExcelファイル
Workbook sourceWorkbook = new Workbook("source.xlsx");

// 宛先Excelファイルを開く
Workbook destinationWorkbook = new Workbook("destination.xlsx");

// ソースワークブックの最初のシートを宛先ワークブックにコピーします
destinationWorkbook.Worksheets[0].Copy(sourceWorkbook.Worksheets[0]);

// Excelファイルを保存します
destinationWorkbook.Save("copy-worksheets.xlsx");

C#でワークシートをある位置から別の位置に移動する

ワークブック内のワークシートの位置を再配置する必要がある場合があります。インデックスを指定してワークシートを目的の位置に移動することで、これを行うことができます。以下は、Excelワークシートをある位置から別の位置に移動する手順です。

  • Workbookクラスを使用してExcelファイルをロードします。
  • Workbook.Worksheetsプロパティを使用して、WorksheetCollectionオブジェクトのワークシートを取得します。
  • ワークシートコレクションからWorksheetオブジェクトに目的のワークシートにアクセスします。
  • Worksheet.MoveTo(int)メソッドを使用して、ワークシートを指定されたインデックスに移動します。
  • Workbook.Save(string)メソッドを使用して、更新されたブックを保存します。

次のコードサンプルは、C#を使用してExcelワークシートをある位置から別の位置に移動する方法を示しています。

// 既存のExcelファイルを開く
Workbook wb = new Workbook("workbook.xlsx");

// ブックのシートを参照してWorksheetCollectionオブジェクトを作成します
WorksheetCollection sheets = wb.Worksheets;

// 最初のワークシートを入手します。
Worksheet worksheet = sheets[0];

// ブックの最初のシートを3番目の位置に移動します
worksheet.MoveTo(2);

// Excelファイルを保存します
wb.Save("move-worksheet.xlsx");

無料のAPIライセンスを取得する

一時ライセンスをリクエストすることで、Aspose.Cells for .NETを無料で試して評価することができます。

結論

この記事では、C#を使用してブック内またはブック間でExcelワークシートをコピーする方法を学習しました。さらに、Excelワークシートをブック内のある位置から別の位置に移動する方法を見てきました。 ドキュメントを使用して、Aspose.Cells for .NETの他の機能を調べることができます。ご不明な点がございましたら、フォーラムまでお気軽に投稿してください。

関連項目