IronXL 操作指南 复制单元格 如何使用 IronXL 在 C# 中复制单元格。 Curtis Chau 已更新:2026年1月10日 下载 IronXL NuGet 下载 DLL 下载 免费试用 法学硕士副本 法学硕士副本 将页面复制为 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 可使用单个 Copy 方法复制 Excel 电子表格中的单元格、范围、行或列,该方法可在任何位置或工作表之间复制数据时保留所有格式和样式。 复制单元格 "功能可复制单元格内容并将其粘贴到其他单元格中。 它复制了工作表中的数据、公式、格式和其他属性。 Whether creating spreadsheets from scratch or loading existing Excel files, the copy functionality is essential for efficient data manipulation. 快速入门:一行复制一列或一个区域 使用一个方法调用将整个范围(单个单元格、行、列或块)从一个工作表复制到另一个工作表。 Copy 功能保留了样式和格式,同时使 Excel 自动化变得快速而简单。 立即开始使用 NuGet 创建 PDF 文件: 使用 NuGet 包管理器安装 IronXL PM > Install-Package IronXL.Excel 复制并运行这段代码。 workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1"); 部署到您的生产环境中进行测试 立即开始在您的项目中使用 IronXL,免费试用! 免费试用30天 ### 最小工作流程(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"); Imports IronXL Dim workBook As WorkBook = WorkBook.Load("sample.xlsx") Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1") ' Copy cell content workSheet("A1").Copy(workBook.GetWorkSheet("Sheet1"), "B3") workBook.SaveAs("copySingleCell.xlsx") $vbLabelText $csharpLabel 复制时保留哪些格式? Copy 方法保留了所有单元格属性,包括 单元格值和公式 数字格式(货币、百分比、日期) 字体样式(字体、大小、粗体、斜体、颜色) 单元格边框和背景颜色 文本对齐(水平和垂直) 单元格保护设置 这种全面的保存方式可确保复制的单元格保持其原始外观和功能,类似于在 Microsoft Excel 中使用 Ctrl+C 和 Ctrl+V。 为什么复制方法需要两个参数? 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"); 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"); 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"); 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"); 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"); Imports IronXL Dim workBook As WorkBook = WorkBook.Load("sample.xlsx") Dim workSheet As 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"工作表: workBook.GetWorksheet("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"); Imports IronXL Dim workBook As WorkBook = WorkBook.Load("sample.xlsx") Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1") ' Copy cell content workSheet("A1").Copy(workBook.GetWorkSheet("Sheet2"), "B3") workBook.SaveAs("copyAcrossWorksheet.xlsx") Dim workBook2 As WorkBook = WorkBook.Load("multisheet.xlsx") Dim sheet1 As WorkSheet = workBook2.GetWorkSheet("Sheet1") Dim sheet2 As WorkSheet = workBook2.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 Dim templateSheet As WorkSheet = workBook2.GetWorkSheet("Template") templateSheet("A1:Z1").Copy(sheet2, "A15") workBook2.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"); ' Check if worksheet exists before copying If workBook.GetWorkSheet("TargetSheet") Is Nothing Then workBook.CreateWorkSheet("TargetSheet") End If ' Safe copy operation Dim targetSheet As WorkSheet = workBook.GetWorkSheet("TargetSheet") sourceSheet("A1:Z100").Copy(targetSheet, "A1") $vbLabelText $csharpLabel 这种方法可以防止运行时出错,并确保复制操作成功,在生产环境中实现 Excel 流程自动化时尤为重要。 常见问题解答 如何使用 C# 在 Excel 中复制单个单元格? 使用 IronXL,您可以使用复制方法复制单个单元格。只需选择要复制的单元格(例如,workSheet["A1"]),然后调用复制方法,并将目标工作表和目标单元格地址作为参数传递即可。在复制操作过程中,IronXL 会保留所有格式,包括字体、颜色、边框和公式。 复制单元格时会保留哪些格式? IronXL 的复制方法可保留所有单元格属性,包括单元格值和公式、数字格式(货币、百分比、日期)、字体样式(字体、大小、粗体、斜体、颜色)、单元格边框和背景颜色、文本对齐方式(水平和垂直)以及单元格保护设置。这可确保复制的单元格保持原有的外观和功能。 能否一次性复制整个列或范围? 是的,IronXL 允许您在一次操作中复制整个列、行或范围。您可以使用 GetColumn(0).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 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 准备开始了吗? Nuget 下载 1,846,091 | 版本: 2026.2 刚刚发布 免费 NuGet 下载 总下载量:1,846,091 查看许可证