IRONSOFTWAREHOME

如何使用IronXL在C#中複製儲存格

Curtis Chau
Curtis Chau
Updated: 2026年6月4日

IronXL透過單一Copy方法可在Excel試算表中複製儲存格、範圍、列或欄,並在不同位置或工作表間複製資料時保留所有格式和樣式。

"複製儲存格"功能會複製儲存格內容並貼上到其他儲存格中。 它會在工作表內複製資料、公式、格式和其他屬性。 無論是從頭開始建立試算表還是載入現有的Excel文件,複製功能對於高效資料操作是必不可少的。

快速入門:一行程式碼複製一欄或範圍

使用一個方法呼叫從一個工作表到另一個工作表複製整個範圍-單個儲存格、列、欄或區塊。 Copy功能在使Excel自動化快速簡單的同時,保留樣式和格式。

  1. 1Install IronXL with NuGet Package Manager

    PM > Install-Package IronXL.Excel

  2. 2複製並運行這段程式碼片段。

    workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1");
  3. 3部署以在您的實時環境中測試

    今天就開始在您的專案中使用IronXL,透過免費試用
    arrow pointer

如何在Excel中複製單個儲存格?

要複製選定儲存格的內容,請使用Copy方法。 將工作表物件作為第一個參數傳遞,並將起始位置作為第二個參數傳遞。 Copy方法保留所有樣式,包括字體和大小背景圖案和顏色以及邊框和對齊

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");

複製時保留了哪些格式?

Copy方法保留了所有儲存格屬性,包括:

  • Cell值和公式
  • 數字格式(貨幣、百分比、日期)
  • 字體樣式(字型、大小、粗體、斜體、顏色)
  • 儲存格邊框和背景顏色
  • 文字對齊(水平和垂直)
  • 儲存格保護設置

這種全面的保留確保了複製的儲存格維持其原始外觀和功能,類似於在Microsoft Excel中使用Ctrl+C和Ctrl+V。

試算表顯示選中A1儲存格,箭頭指向包含已複製值的B3儲存格,演示單個儲存格複製

為什麼複製方法需要兩個參數?

Copy方法需要兩個參數以便精確控制:

  1. 工作表參數:指定目標工作表(相同工作簿中相同或不同)
  2. 地址參數:定義要貼上內容的開始儲存格位置

這種設計允許在同一工作表或不同工作表之間靈活地進行複製,非常適合建立摘要報告或整合多個來源的資料。

什麼時候應該使用單個儲存格複製與範圍複製?

在以下情況下選擇單個儲存格複製:

  • 複製單個值或公式
  • 複製標題儲存格或標籤
  • 複製特定計算結果
  • 處理摘要值

在以下情況下使用範圍複製:

  • 移動整個資料表
  • 複製多個相關的儲存格
  • 複製整行或整列
  • 保留資料關係

如何複製多個儲存格或範圍?

Range類中使用,允許在任何範圍大小上執行。 在選擇範圍時,IronXL提供了靈活的複製選項:

  • 複製單個儲存格(C10)

    workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13");
  • 複製一列(A)

    workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1");
  • 複製一行(4)

    workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15");
  • 複製二維範圍(D6:F8)

    workSheet["D6:F8"].Copy(workBook.GetWorkSheet("Sheet1"), "H17");
請注意: 第二個參數接受標記資料輸入起點的地址位置。 複製的資料將從該地址向右和向下展開。
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");

當目標範圍過小時會發生什麼情況?

IronXL自動處理大小差異:

  • 目標參數僅指定左上角的開始儲存格
  • 整個來源範圍被複製,不論目標大小為何
  • 目的地區域中的現有資料將被覆蓋
  • 複製操作會展開以適應所有來源資料

例如,將3x3範圍複製到儲存格B1:D3,覆蓋任何現有內容。

行和列參考如何運作?

IronXL使用零起始索引來處理帶有GetColumn()方法的行和列:

  • GetColumn(0)指的是列A
  • GetColumn(1)指的是列B
  • GetRow(0)指的是行1
  • GetRow(3)指的是行4

這種索引方式與標準C#陣列約定一致。

為什麼要使用GetRow()方法?

GetRow()方法提供:

  • 性能:在整行或整列上更高效
  • 清晰度:使程式碼意圖更明確
  • 靈活性:返回支援所有範圍操作的Range物件
  • 便利性:不需要為完整選擇計算結束儲存格

這些方法在建立需要完整欄位複製的報告或複製列模板時表現卓越。

Excel複製操作顯示箭頭從來源範圍A1:F10指向包含已複製資料的目標儲存格

如何在不同工作表間複製儲存格?

第一個參數接受工作表物件,從而啟用跨不同工作表的複製和黏貼。 將不同的工作表物件作為第一個參數傳遞。 在管理多個工作表或從詳細資料中建立摘要表時,此功能證明了它的必要性。

workBook.GetWorksheet("Sheet2")

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");

常見的跨工作表複製場景有哪些?

跨工作表複製經常用於這些場景:

  1. 建立摘要表:將詳細表中的關鍵指標複製到儀錶板
  2. 模板複製:將格式化的模板複製到新工作表
  3. 資料整合:將部門表中的資料彙集到主表中
  4. 報表生成:將篩選結果複製到單獨的報表工作表中
  5. 備份操作:將關鍵資料複製到備份表中

在處理引用其他儲存格的公式時,IronXL會根據新位置自動調整相對引用,同時保持絕對引用。

何時應該將複製到新工作表與現有工作表?

在以下情況下複製到新工作表時:

  • 建立定期報告(每日、每週、每月)
  • 將處理資料與原始資料隔離
  • 從來源資料建立分析工作表
  • 生成使用者特定資料視圖

在以下情況下複製到現有工作表時:

  • 將資料附加到正在進行的日誌中
  • 更新儀表板欄位
  • 整合多個資料源
  • 維持歷史記錄

對於涉及多個窗口的複雜場景,考慮使用IronXL的功能處理DataSet和DataTable以進行複雜的資料操作。

如何處理工作表命名衝突?

在工作表之間複製時確保適當的工作表管理:

// 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");

這種方法防止運行時錯誤,並確保成功的複製操作,尤其是在生產環境中自動化Excel流程時至關重要。

常見問題

如何在Excel中使用C#複製單個單元格?

使用IronXL,您可以使用Copy方法複製單個單元格。只需選擇您想要複製的單元格(例如,workSheet["A1"]),然後調用Copy方法,將目標工作表和目標單元格地址作為參數傳遞。IronXL在複製操作中保持所有格式,包括字體、顏色、邊框和公式。

在複製單元格時保留哪些格式?

IronXL的Copy方法保留所有單元格屬性,包括單元格值和公式、數字格式(貨幣、百分比、日期)、字體樣式(字型、大小、粗體、斜體、顏色)、單元格邊框和背景顏色、文字對齊(水平和垂直)、以及單元格保護設置。這確保複製後的單元格保持其原始外觀和功能。

我可以一次複製整個列或範圍嗎?

是的,IronXL允許您在一次操作中複製整個列、行或範圍。您可以使用類似GetColumn(0).Copy()的方法來複製整個列,或者選擇一個單元格範圍一次性複製多個單元格。Copy方法可以處理任何選擇大小,從單個單元格到整個工作表。

如何在不同工作表之間複製單元格?

IronXL使得在工作表之間複製單元格變得簡單。在使用Copy方法時,指定目標工作表為第一個參數(例如,workBook.GetWorkSheet("Sheet2")),而目標單元格地址作為第二個參數。這允許您在同一工作簿的不同工作表之間複製資料。

在Excel中複製單元格需要哪些最少步驟?

使用IronXL,複製單元格只需5個步驟:1) 下載IronXL C#程式庫,2) 載入現有的Excel電子表格,3) 選擇您想要複製的範圍、行或列,4) 在選定的範圍上調用Copy方法,5) 將目標工作表和位置傳遞給Copy方法。整個操作可以在單行程式碼中完成。

What happens if the destination range is smaller than the source when copying cells with IronXL?

When the destination range is smaller, IronXL's `Copy` function still accommodates the full source range by overwriting any existing data in the destination area, expanding as needed to fit all copied data.

Why might I choose to copy to a new worksheet rather than an existing one?

Copying to a new worksheet is recommended for creating periodic reports, isolating processed data, building analysis sheets, and generating user-specific views. This ensures data separation and clarity in reporting.

How do row and column references work in IronXL?

IronXL uses zero-based indexing where `GetColumn(0)` refers to column A, and `GetRow(0)` refers to row 1. This aligns with C# array conventions, making it intuitive for developers familiar with standard C# practices.

What are common scenarios for cross-worksheet copying with IronXL?

Cross-worksheet copying in IronXL is commonly used for creating summary sheets, replicating templates to new sheets, consolidating data from multiple sources, generating reports, and performing backup operations of critical data.

How does IronXL handle worksheet naming conflicts during copy operations?

IronXL manages worksheet naming conflicts by allowing you to check for and create target sheets if they don't exist, ensuring safe copy operations without runtime errors, which is crucial for automating Excel processes.

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

準備好開始了嗎?

Nuget Downloads 2,237,574版本:2026.9剛剛發布

立即獲取免費

立即獲取 30天試用金鑰

bullet_checked無需信用卡或註冊帳號
bullet_test在生產
環境中進行測試,且不顯示浮水印
bullet_calendar30 天全
功能產品
bullet_support試用期間提供 24/5 技術
支援
立即獲取您的免費30天試用金鑰
無需信用卡或帳戶建立
PDF的C# NuGet程式庫
NuGet安裝

版本: 2026.9

PM > Install-Package IronXL.Excel
nuget.org/packages/IronXL.Excel/
  1. 在方案資源管理器中,右鍵單擊參考,管理NuGet包
  2. 選擇瀏覽並搜尋“IronXL”
  3. 選擇包並安裝
C# PDF DLL
下載DLL

版本: 2026.9

  1. 下載並解壓IronXL到您的方案目錄中的比如~/Libs位置
  2. 在Visual Studio方案資源管理器中,右鍵單擊參考。選擇瀏覽,“IronXL.dll”

授權從$999

有問題嗎?聯絡我們的開發團隊。

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
預約您的免費即時演示
Booking Badge

全球數百萬工程師的信賴

Iron Software的客戶標誌
獲得無義務諮詢
填寫以下表格或電郵sales@ironsoftware.com
您的資料將始終保密。
全球數百萬工程師的信賴
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立