首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 操作 Excel 行列:選取、複製與插入列

     編輯:關於C#

在 Excel 物件模型中,行與列本質上也是 Range 物件。透過 Worksheet.Rows 與 Columns 屬性的 get_Item 方法,即可精準操作特定行列。本文示範如何選取第 18 列、寫入資料、複製至第 19 列,並插入新列將資料下移。

核心程式碼片段

Excel.Application app = new Excel.Application();
Excel.Workbook wb = app.Workbooks.Open(@"Z:\Book1.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
app.DisplayAlerts = false;
Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets.get_Item(1);

// 取得第 18 列與第 19 列的 Range 物件
Excel.Range row18 = (Excel.Range)ws.Rows.get_Item(18, Type.Missing);
Excel.Range row19 = (Excel.Range)ws.Rows.get_Item(19, Type.Missing);

// 寫入資料並複製
row18.Value = "123";
row18.Copy(row19);

// 在第 19 列插入新列,現有資料下移
row19.Rows.Insert(Excel.XlInsertShiftDirection.xlShiftDown);

wb.SaveAs(@"Z:\Book2.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlNoChange, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
// ... 釋放資源程式碼省略 ...

操作解析

  • Rows.get_Item(index):傳回指定列的整列 Range,支援後續的 Value、Copy、Insert 等操作。
  • Copy 方法:可直接將來源範圍的內容、格式複製到目標範圍。
  • Insert 方法:搭配 XlInsertShiftDirection.xlShiftDown 將現有列下移,騰出空白列。
  • Columns 同理:ws.Columns.get_Item(3) 即可操作第 C 欄。

最佳實務提醒

操作完成後,務必正確釋放所有 COM 物件(Workbook、Application 等),並呼叫 GC.Collect(),避免 Excel 進程在背景殘留佔用記憶體。

靈活運用行列屬性,能大幅簡化報表中插入彙總列、複製樣式列等常見需求的程式碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved