日常的な開発において、Excel ファイルは「データの読み書き」だけでなく、さまざまな操作を行う必要があります。たとえばレポートを扱うときに 新しいワークシートを追加する、不要なシートを削除する、シートをコピー・移動する、名前を変更する といった作業がよく発生します。これらを自在に扱えると、Excel ファイルの構造をより柔軟かつ分かりやすく整理できます。
この記事では、同じブック内 でワークシートを管理する基本操作(追加・削除・コピー・移動・リネーム・順序変更)を解説します。すべて同じサンプルファイルを使いながら実行し、結果を確認できるようにしています。
利用するのは無料ライブラリ Free Spire.XLS for .NET です。NuGet から簡単にインストールできます。
Install-Package FreeSpire.XLS
1. ワークブックの初期化
新しく作成した Workbook
には、デフォルトで 3 つのワークシート(Sheet1、Sheet2、Sheet3)が含まれています。ここから操作を始めます。
using Spire.Xls;
using System.Drawing;
Workbook workbook = new Workbook();
Worksheet sheet1 = workbook.Worksheets[0];
sheet1.Name = "既定シート1";
sheet1.Range["A1"].Text = "これは最初の既定ワークシートです";
ポイント:
-
Workbook
クラスは Excel ファイルを表します。 -
Worksheets
コレクションにすべてのシートが格納されます。 - 初期状態で 3 枚のワークシートが生成されます。
2. ワークシートの追加
Worksheets.Add()
メソッドを使って新しいシートを追加できます。
Worksheet newSheet = workbook.Worksheets.Add("新規ワークシート");
newSheet.Range["A1"].Text = "これは新しく追加したワークシートです";
利用例:
- 既存レポートに新しいデータ領域を追加する。
- 一時的な計算用・結果用シートを作成する。
3. ワークシートの削除
不要なシートは削除できます。以下ではデフォルトの 3 番目(Sheet3)を削除します。
workbook.Worksheets[2].Remove(); // 3 番目の既定シートを削除
ポイント:削除後はシート数が減り、インデックスも自動で調整されます。
4. ワークシートのコピー
既存シートをコピーして新しい位置に追加することも可能です。以下は 1 番目のシートをコピーする例です。
Worksheet copiedSheet = workbook.Worksheets.Add("コピーシート");
copiedSheet.CopyFrom(sheet1);
copiedSheet.Range["A2"].Text = "これは1番目のシートをコピーしたものです";
利用例:
- 元のシートを保持したまま編集用の複製を作成する。
- 手作業で書式設定を繰り返す手間を省く。
5. ワークシートの移動
シートの順序は自由に変更できます。以下では「新規ワークシート」を先頭に移動します。
Worksheet sheetToMove = workbook.Worksheets["新規ワークシート"];
sheetToMove.MoveWorksheet(0); // インデックス0(先頭)へ移動
ポイント:MoveWorksheet()
により指定したシートを任意のインデックス位置に移動できます。
6. ワークシートの名前変更
シート名は管理において重要です。ここでは 2 番目のシートを「売上データ」に変更します。
workbook.Worksheets[2].Name = "売上データ";
workbook.Worksheets[2].Range["A1"].Text = "これは売上データシートです";
利用例:
「Sheet1」「Sheet2」といった既定名を「財務報告」「年間統計」など業務内容に即した名前へ変更。
7. 他シートへのセルコピー
シート全体ではなく特定のセル範囲をコピーすることも可能です。以下では「売上データ」の A2:C3 を新しいシートにコピーします。
Worksheet source = workbook.Worksheets["売上データ"];
Worksheet target = workbook.Worksheets.Add("データコピー用シート");
target.Range["A1"].Text = "これはデータコピー用のワークシートです";
// ソースシートにサンプルデータを追加
source.Range["A2"].Text = "商品";
source.Range["B2"].Text = "数量";
source.Range["C2"].Text = "金額";
source.Range["A3"].Text = "パソコン";
source.Range["B3"].NumberValue = 10;
source.Range["C3"].NumberValue = 50000;
source.Range["A2:C3"].Style.Color = Color.LightGray;
// A2:C3 をコピー
source.Range["A2:C3"].Copy(target.Range["A2"]);
ポイント:
-
Copy()
はデータと書式を含めてコピーします。 - データ分割や集計シナリオで有効です。
8. 他のブックにワークシートをコピー
シートを新しい Excel ファイルへ移すケースもあります。以下では「売上データ」シートを別ブックへコピーします。
Worksheet sheetToCopy = workbook.Worksheets["売上データ"];
Workbook newWorkbook = new Workbook();
newWorkbook.Worksheets.Clear();
Worksheet newSheet1 = newWorkbook.Worksheets.Add("売上データ_コピー");
newSheet1.CopyFrom(sheetToCopy);
ポイント:
-
newWorkbook.Worksheets.Clear()
で既定のシートを削除。 -
CopyFrom()
によりシート内容と書式を完全に複製。 - 元のシートを削除すれば「移動」として扱えます。
9. ファイルの保存
最後に結果を Excel ファイルとして保存します。
workbook.SaveToFile("ワークシート操作サンプル.xlsx", ExcelVersion.Version2016);
newWorkbook.SaveToFile("別ブックコピーサンプル.xlsx", ExcelVersion.Version2016);
出力結果には以下が含まれます:
- 新規追加・コピー・リネームしたワークシート
- 不要な既定シートの削除
- シート順序の変更
- 一部セル範囲のコピー
生成された Excel ブックのプレビュー:
コピーされた新しいブックのプレビュー:
10. 主要メソッドまとめ
操作 | メソッド/プロパティ | 説明 |
---|---|---|
シート追加 | Worksheets.Add("name") |
新しいシートを追加 |
シート削除 | Worksheets[index].Remove() |
指定インデックスのシートを削除 |
シートコピー | copiedSheet.CopyFrom(sourceSheet) |
既存シートを新しいシートに複製 |
シート移動 | Worksheets.Move(sheet, position) |
シート順序を変更 |
名前変更 | Worksheet.Name |
シート名を設定または取得 |
セルコピー | sourceRange.Copy(targetRange) |
指定範囲を他シートにコピー |
以上で、C# を使った Excel ワークシート操作の基本が理解できたと思います。これらの機能は日常的なドキュメント管理や自動化処理において非常に便利で、Excel ファイルをより効率的かつ見やすく整理する助けとなります。
さらに多くの Excel 操作方法については Spire.XLS for .NET チュートリアル をご覧ください。