IronXL 操作指南 複製單元格 如何使用IronXL在 C# 中複製儲存格 Curtis Chau 更新:2026年1月10日 下載 IronXL NuGet 下載 DLL 下載 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 This article was translated from English: Does it need improvement? Translated View the article in English IronXL能夠使用單一方法在 Excel 電子表格中複製儲存格、區域、行或列,該方法可在任何位置或工作表之間複製資料時保留所有格式和樣式。 "複製儲存格"功能會將儲存格內容複製並貼上到其他儲存格。 它會複製工作表中的資料、公式、格式和其他屬性。 Whether creating spreadsheets from scratch or loading existing Excel files, the copy functionality is essential for efficient data manipulation. 快速入門:一行複製一列或一個區域 使用一次方法調用,將整個範圍(單一儲存格、行、列或區塊)從一個工作表複製到另一個工作表。 Copy 函數保留樣式和格式,同時讓 Excel 自動化變得快速又簡單。 使用NuGet套件管理器安裝https://www.nuget.org/packages/IronXL.Excel PM > Install-Package IronXL.Excel 複製並運行這段程式碼。 workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1"); 部署到您的生產環境進行測試 今天就在您的專案中開始使用免費試用IronXL Free 30 Day Trial 最簡工作流程(5個步驟) 下載用於複製單元格的 C# 庫 載入現有的 Excel 電子表格 選擇要複製的範圍、行或列。 Invoke the `Copy` method on the selected range Pass a destination worksheet and position to the `Copy` method 如何在Excel中複製單一儲存格? 若要複製選取儲存格的內容,請使用 Copy 方法。 將工作表物件作為第一個參數傳遞,將起始位置作為第二個參數傳遞。 The Copy method retains all styling including font and size, background patterns and colors, and borders and alignment. :path=/static-assets/excel/content-code-examples/how-to/copy-cells-copy-single-cell.cs using IronXL; WorkBook workBook = WorkBook.Load("sample.xlsx"); WorkSheet workSheet = workBook.GetWorkSheet("Sheet1"); // Copy cell content workSheet["A1"].Copy(workBook.GetWorkSheet("Sheet1"), "B3"); workBook.SaveAs("copySingleCell.xlsx"); using IronXL; WorkBook workBook = WorkBook.Load("sample.xlsx"); WorkSheet workSheet = workBook.GetWorkSheet("Sheet1"); // Copy cell content workSheet["A1"].Copy(workBook.GetWorkSheet("Sheet1"), "B3"); workBook.SaveAs("copySingleCell.xlsx"); using IronXL; WorkBook workBook = WorkBook.Load("sample.xlsx"); WorkSheet workSheet = workBook.GetWorkSheet("Sheet1"); // Copy cell content workSheet["A1"].Copy(workBook.GetWorkSheet("Sheet1"), "B3"); workBook.SaveAs("copySingleCell.xlsx"); $vbLabelText $csharpLabel 複製時會保留哪些格式? Copy 方法保留所有單元格屬性,包括: Cell 值與公式 數位格式(貨幣、百分比、日期) 字體樣式(字體、字號、粗體、斜體、顏色) 單元格邊框和背景顏色 文字對齊方式(水平和垂直) 電池保護設定 這種全面的儲存功能可確保複製的儲存格保持其原始外觀和功能,類似於在 Microsoft Excel 中使用 Ctrl+C 和 Ctrl+V。 為什麼 Copy 方法需要兩個參數? Copy 方法需要兩個參數才能精確控制: 1.工作表參數:指定目標工作表(可以是工作簿中的相同工作表,也可以是不同的工作表)。 2.位址參數:定義貼上內容的起始儲存格位置 這種設計允許在同一工作表內或不同工作表之間靈活複製,非常適合建立匯總報告或整合來自多個來源的資料。 何時應該使用單一儲存格複製,何時應該使用範圍複製? 選擇單一儲存格複製的情況: 重複單一值或公式 複製標題儲存格或標籤 重現特定計算結果 使用總計值 何時使用範圍複製: 移動整個資料表 複製多個相關細胞 複製整行或整列 維繫數據關係 如何複製多個儲存格或區域? Like the Clear method, Copy is available in the Range class, allowing execution on any range size. When selecting ranges, IronXL provides flexible copying options: -複製單一儲存格 (C10) : workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13"); workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13"); $vbLabelText $csharpLabel -複製一列(A) : workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1"); workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1"); $vbLabelText $csharpLabel -複製一行(4) : workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15"); workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15"); $vbLabelText $csharpLabel -複製二維範圍 (D6:F8) : workSheet["D6:F8"].Copy(workBook.GetWorkSheet("Sheet1"), "H17"); workSheet["D6:F8"].Copy(workBook.GetWorkSheet("Sheet1"), "H17"); $vbLabelText $csharpLabel 請注意第二個參數接受一個位址位置,該位址位置標記資料輸入的起始點。 複製的資料將從該位址開始,並向右下方擴展。 ) :path=/static-assets/excel/content-code-examples/how-to/copy-cells-copy-cell-range.cs using IronXL; WorkBook workBook = WorkBook.Load("sample.xlsx"); WorkSheet workSheet = workBook.GetWorkSheet("Sheet1"); // Copy a single cell(C10) workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13"); // Copy a column(A) workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1"); // Copy a row(4) workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15"); // Copy a two-dimensional range(D6:F8) workSheet["D6:F8"].Copy(workBook.GetWorkSheet("Sheet1"), "H17"); workBook.SaveAs("copyCellRange.xlsx"); using IronXL; WorkBook workBook = WorkBook.Load("sample.xlsx"); WorkSheet workSheet = workBook.GetWorkSheet("Sheet1"); // Copy a single cell(C10) workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13"); // Copy a column(A) workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1"); // Copy a row(4) workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15"); // Copy a two-dimensional range(D6:F8) workSheet["D6:F8"].Copy(workBook.GetWorkSheet("Sheet1"), "H17"); workBook.SaveAs("copyCellRange.xlsx"); using IronXL; WorkBook workBook = WorkBook.Load("sample.xlsx"); WorkSheet workSheet = workBook.GetWorkSheet("Sheet1"); // Copy a single cell(C10) workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13"); // Copy a column(A) workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1"); // Copy a row(4) workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15"); // Copy a two-dimensional range(D6:F8) workSheet["D6:F8"].Copy(workBook.GetWorkSheet("Sheet1"), "H17"); workBook.SaveAs("copyCellRange.xlsx"); $vbLabelText $csharpLabel 目的地範圍太小會發生什麼事? IronXL可自動處理尺寸差異: 目標參數僅指定左上角的起始儲存格 複製整個來源範圍,無論目標大小為何 目標區域中的現有資料將被覆蓋 複製操作會擴展到容納所有來源資料。 例如,將 3x3 區域複製到儲存格 B1 會填入儲存格 B1:D3,覆蓋任何現有內容。 行引用和列引用是如何運作的? IronXL使用基於零的行和列索引,並採用 GetRow() 和 GetColumn() 方法: GetColumn(0) 指的是 A 列 GetColumn(1) 指的是 B 列 GetRow(0) 指的是第 1 行 GetRow(3) 指的是第 4 行 這種索引方式符合標準的 C# 陣列約定。 為什麼要使用 GetColumn() 和 GetRow() 方法? GetColumn() 和 GetRow() 方法提供: 效能:對整行或整列的處理效率更高 清晰度:使程式碼意圖更清晰 靈活性:傳回一個支援所有範圍操作的 Range 對象 便利性:無需計算全選區域的結束儲存格 這些方法在建立需要完整複製列的報表或複製行範本時非常有效。 如何在不同的工作表之間複製儲存格? 第一個參數接受一個工作表對象,從而可以在不同的工作表之間進行複製和貼上。 將不同的工作表物件作為第一個參數傳遞。 This functionality proves essential when managing multiple worksheets or creating summary sheets from detailed data. 在下列範例中,Copy 方法的第一個參數是"Sheet2"工作表: :path=/static-assets/excel/content-code-examples/how-to/copy-cells-copy-to-other-worksheet.cs using IronXL; WorkBook workBook = WorkBook.Load("multisheet.xlsx"); WorkSheet sheet1 = workBook.GetWorkSheet("Sheet1"); WorkSheet sheet2 = workBook.GetWorkSheet("Sheet2"); // Copy entire data range from Sheet1 to Sheet2 sheet1["A1:D10"].Copy(sheet2, "A1"); // Copy with formulas intact sheet1["E1:E10"].Copy(sheet2, "F1"); // Copy formatting from template sheet WorkSheet templateSheet = workBook.GetWorkSheet("Template"); templateSheet["A1:Z1"].Copy(sheet2, "A15"); workBook.SaveAs("crossSheetCopy.xlsx"); using IronXL; WorkBook workBook = WorkBook.Load("sample.xlsx"); WorkSheet workSheet = workBook.GetWorkSheet("Sheet1"); // Copy cell content workSheet["A1"].Copy(workBook.GetWorkSheet("Sheet2"), "B3"); workBook.SaveAs("copyAcrossWorksheet.xlsx"); using IronXL; WorkBook workBook = WorkBook.Load("multisheet.xlsx"); WorkSheet sheet1 = workBook.GetWorkSheet("Sheet1"); WorkSheet sheet2 = workBook.GetWorkSheet("Sheet2"); // Copy entire data range from Sheet1 to Sheet2 sheet1["A1:D10"].Copy(sheet2, "A1"); // Copy with formulas intact sheet1["E1:E10"].Copy(sheet2, "F1"); // Copy formatting from template sheet WorkSheet templateSheet = workBook.GetWorkSheet("Template"); templateSheet["A1:Z1"].Copy(sheet2, "A15"); workBook.SaveAs("crossSheetCopy.xlsx"); $vbLabelText $csharpLabel 常見的跨工作表複製場景有哪些? 跨工作表複製通常用於以下場景: 1.建立匯總表:將詳細資料表中的關鍵指標複製到儀表板中 2.範本複製:將格式化的範本複製到新的工作表中 3.資料整合:將部門表中的資料匯總到主表中 4.產生報表:將篩選後的結果複製到單獨的報表工作表中 5.備份作業:將關鍵資料複製到備份表 When working with formulas that reference other cells, IronXL automatically adjusts relative references based on the new location while maintaining absolute references. 何時應該複製到新工作表,何時該複製到現有工作表? 複製到新工作表的情況: 建立定期報告(每日、每週、每月) 將處理後的資料與原始資料分離 根據來源資料建立分析工作表 產生使用者特定的資料視圖 複製到現有工作表的情況: 將資料追加到正在進行的日誌中 更新儀錶板部分 整合多個資料來源 維護歷史記錄 For complex scenarios involving multiple sheets, consider using IronXL's ability to work with DataSets and DataTables for sophisticated data manipulation. 如何處理工作表命名衝突? 在工作表之間複製資料時,請確保正確管理工作表: // Check if worksheet exists before copying if (workBook.GetWorkSheet("TargetSheet") == null) { workBook.CreateWorkSheet("TargetSheet"); } // Safe copy operation WorkSheet targetSheet = workBook.GetWorkSheet("TargetSheet"); sourceSheet["A1:Z100"].Copy(targetSheet, "A1"); // Check if worksheet exists before copying if (workBook.GetWorkSheet("TargetSheet") == null) { workBook.CreateWorkSheet("TargetSheet"); } // Safe copy operation WorkSheet targetSheet = workBook.GetWorkSheet("TargetSheet"); sourceSheet["A1:Z100"].Copy(targetSheet, "A1"); $vbLabelText $csharpLabel 這種方法可以防止執行階段錯誤,並確保複製操作成功,這在生產環境中自動化 Excel 流程時尤其重要。 常見問題解答 如何使用 C# 在 Excel 中複製單一單元格? 使用 IronXL,您可以使用複製方法複製單一單元格。只需選擇要複製的單元格 (例如 workSheet["A1"]),然後調用複製方法,並傳入目標工作表和目標單元格位址作為參數即可。在複製操作中,IronXL 會保留所有格式,包括字型、顏色、邊框和公式。 複製單元格時會保留哪些格式? IronXL 的複製方法可保留所有儲存格屬性,包括儲存格值和公式、數字格式 (貨幣、百分比、日期)、字型樣式 (字型、大小、粗體、斜體、顏色)、儲存格邊框和背景顏色、文字對齊方式 (水平和垂直),以及儲存格保護設定。這可確保複製的單元組保持其原始外觀和功能。 我可以一次複製整列或整個範圍嗎? 是的,IronXL 允許您在單一操作中複製整列、行或範圍。您可以使用 GetColumn(0).Copy() 等方法複製整列,或選擇單元格範圍,一次複製多個單元格。Copy 方法適用於任何選取大小,從單一單元格到整個工作表。 如何在不同的工作表之間複製單元格? IronXL 可以輕鬆地在工作表之間複製單元格。使用複製方法時,請指定目標工作表為第一個參數 (例如 workBook.GetWorkSheet("Sheet2")),並指定目標儲存格位址為第二個參數。這可讓您在同一工作簿的不同工作表之間複製資料。 在 Excel 中複製單元格至少需要哪些步驟? 使用 IronXL,複製單元只需 5 個步驟:1) 下載 IronXL.Excel C# 函式庫;2) 載入您現有的 Excel 試算表;3) 選擇您想要複製的範圍、行或列;4) 在選取的範圍上啟動複製方法;5) 傳送目的地工作表和位置給複製方法。整個操作只需一行代碼即可完成。 Curtis Chau 立即與工程團隊聊天 技術作家 Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。 準備好開始了嗎? Nuget 下載 1,909,201 | 版本: 2026.3 剛剛發布 開始免費試用 免費 NuGet 下載 總下載量:1,909,201 查看許可證 還在捲動嗎? 想要快速證明? PM > Install-Package IronXL.Excel 執行範例 觀看您的資料變成試算表。 免費 NuGet 下載 總下載量:1,909,201 查看許可證