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

C# 操作 Excel 生成報表(四):跨 Sheet 複制單元格與格式

     編輯:關於C語言

場景

分頁報表需將首頁表頭複製到其他 Sheet,保持格式一致。

方法一:Range.Copy 完整複製(含格式)


Excel.Application app = new Excel.Application();
Excel._Workbook wb = app.Workbooks.Open(@"z:\Book1.xls", Missing.Value, ...);
app.DisplayAlerts = false;

Excel.Worksheet src = (Excel.Worksheet)wb.Worksheets[1];
Excel.Range srcRng = src.get_Range("A1", Missing.Value);
srcRng.Value = "123";

Excel.Worksheet dst = (Excel.Worksheet)wb.Worksheets[2];
Excel.Range dstRng = dst.get_Range("B1", Missing.Value);

srcRng.Copy(dstRng); // 連值帶格式全部複製

wb.SaveAs(@"z:\Book2.xls", ...);

方法二:剪貼板僅複製文本值


srcRng.Value = "123";
Clipboard.SetDataObject(srcRng.Value.ToString()); // 僅支持單儲存格
dst.Paste(dstRng, false);
  • 優點:不複製格式,僅文本。
  • 缺點:僅支持單儲存格,無法批量複製區域。

資源清理


wb.Close(...); app.Quit();
Marshal.ReleaseComObject(wb); Marshal.ReleaseComObject(app);
GC.Collect(); GC.WaitForPendingFinalizers();

選擇建議

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
需求方法
保持格式、批量區域Range.Copy
僅值、單儲存格Clipboard + Paste
僅值、批量區域讀取 Value 到 object[,] → 寫入目標 Range.Value