分頁報表需將首頁表頭複製到其他 Sheet,保持格式一致。
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();
| 需求 | 方法 |
|---|---|
| 保持格式、批量區域 | Range.Copy |
| 僅值、單儲存格 | Clipboard + Paste |
| 僅值、批量區域 | 讀取 Value 到 object[,] → 寫入目標 Range.Value |