動態

詳情 返回 返回

使用 C# 操作 Excel 工作表:添加、刪除、複製、移動、重命名 - 動態 詳情

在日常開發中,我們經常需要對 Excel 文件進行各種操作,而不僅僅是寫入或讀取數據。比如在處理報表時,可能需要 添加新的工作表、刪除不需要的表、複製或移動表格內容,甚至對工作表進行重命名和調整順序。掌握這些操作能讓你的 Excel 文件更加靈活,結構更清晰。

本文演示如何在 同一個工作簿內 完成多種工作表管理操作,包括添加、刪除、複製、移動、重命名以及移動工作表。所有操作都基於同一個示例文件,便於截圖展示效果。

本文使用免費的 Free Spire.XLS for .NET,可通過 NuGet 安裝:

Install-Package FreeSpire.XLS

1. 初始化工作簿

新建的 Workbook 默認包含三個工作表(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 集合存放了該工作簿中的所有工作表。
  • 默認就有三個工作表,不需要手動添加。

2. 添加工作表

可以通過 Worksheets.Add() 方法添加新的工作表。

Worksheet newSheet = workbook.Worksheets.Add("新增工作表");
newSheet.Range["A1"].Text = "這是新建的工作表";

應用場景

  • 在現有報表中擴展新的數據區。
  • 生成臨時的計算表或結果表。

3. 刪除工作表

如果不需要某個工作表,可以直接刪除。這裏我們刪除第三個默認工作表(Sheet3)。

workbook.Worksheets[2].Remove();  // 刪除第三個默認工作表

説明:刪除後,工作簿中的工作表總數會減少,後續的索引也會自動調整。


4. 複製工作表

複製一個已有的工作表到新的位置。這裏我們複製第一個工作表。

Worksheet copiedSheet = workbook.Worksheets.Add("複製的表");
copiedSheet.CopyFrom(sheet1);
copiedSheet.Range["A2"].Text = "這是複製自第一個工作表的副本";

場景

  • 保留原始表的同時,生成一個副本用於實驗或修改。
  • 避免重複手動設置表格格式。

5. 移動工作表

可以改變工作表在工作簿中的順序。這裏把“新增工作表”移動到第一個位置。

Worksheet sheetToMove = workbook.Worksheets["新增工作表"];
sheetToMove.MoveWorksheet(0);  // 移動到第一個位置

説明MoveWorksheet() 方法允許把指定的表移動到目標索引位置。索引從 0 開始。


6. 重命名工作表

工作表命名在報表管理中非常重要,合理命名有助於區分內容。這裏我們把第二個工作表改名為“銷售數據”。

workbook.Worksheets[2].Name = "銷售數據";
workbook.Worksheets[2].Range["A1"].Text = "這裏是銷售數據表";

場景:將默認的 “Sheet1”、“Sheet2” 改為業務相關的名稱,如“財務報表”、“年度統計”。


7. 複製內容到其他工作表

除了移動整個工作表,也可以將某些單元格區域複製或移動到其他表。這裏我們將“銷售數據”的 A2:C3 區域複製到“複製數據工作表”的 A2 開始的區域。

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;

// 將源表的 A1:C2 區域複製到目標表的 A1
source.Range["A2:C3"].Copy(target.Range["A2"]);

説明

  • 使用 Copy() 可以將區域內容(包括數據與格式)複製到另一個表。
  • 適合拆分數據或彙總數據時使用。

10. 將工作表複製到其他工作簿

有時我們需要將某個工作表從當前工作簿轉移到另一個文件中,便於拆分數據或單獨保存。下面演示如何把“銷售數據”工作表複製到新的工作簿,並保存為單獨文件。

// 獲取要複製的工作表
Worksheet sheetToCopy = workbook.Worksheets["銷售數據"];

// 新建一個目標工作簿
Workbook newWorkbook = new Workbook();

// 清空默認生成的工作表,避免混亂
newWorkbook.Worksheets.Clear();

// 在新工作簿中添加並複製工作表
Worksheet newSheet1 = newWorkbook.Worksheets.Add("銷售數據副本");
newSheet1.CopyFrom(sheetToCopy);

// 刪除原工作表即可完成移動
//sheetToCopy.Remove();

説明

  • newWorkbook.Worksheets.Clear() 用於清空新建工作簿中默認的三個工作表。
  • CopyFrom() 可以完整複製源表的數據和格式。
  • 刪除原工作表即可完成移動操作工作表到新工作簿的操作。

8. 保存文件

最後,將工作簿保存為 Excel 文件以便查看結果。

workbook.SaveToFile("工作表操作示例.xlsx", ExcelVersion.Version2016);
newWorkbook.SaveToFile("複製到新工作簿示例.xlsx", ExcelVersion.Version2016);

生成的文件中包含:

  • 已新增、複製和重命名的工作表;
  • 刪除了一個不需要的默認表;
  • 調整了工作表順序;
  • 複製了部分單元格到其他工作表。

生成的 Excel 工作簿預覽:

使用C#新建、移動、複製、重命名Excel工作表

複製的新工作簿預覽:

C#複製工作表到其他Excel工作簿


9. 關鍵方法總結

操作類型 方法/屬性 説明
添加表 Worksheets.Add("name") 新建一個工作表
刪除表 Worksheets[index].Remove() 刪除指定索引的工作表
複製表 copiedSheet.CopyFrom(sourceSheet) 將現有工作表複製到新表
移動表 Worksheets.MoveWorksheet(positionIndex) 調整工作表在工作簿中的順序
重命名錶 Worksheet.Name 設置或獲取工作表的名稱
移動單元格 sourceRange.Copy(targetRange) 將指定單元格區域複製到其他表

通過以上操作,你已經可以靈活地用 C# 操作 Excel 工作簿中的工作表。這些操作在日常文檔管理和自動化處理中非常實用,能讓 Excel 文件的組織更加清晰高效。

更多 Excel 文件操作技巧請查看 Spire.XLS for .NET 教程。

user avatar thosefree 頭像 xiaohuzideboluo_cvmeub 頭像 ichu 頭像
點贊 3 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.