半岛权威十大直营(官方)网站

Spire.XLS for .NET系列教程:C# 在 Excel 中复制行、列和单元格并保留格式

翻译|使用教程|编辑:吉炜炜|2024-12-16 10:25:23.840|阅读 45 次

概述:在日常操作 Excel 文档时,复制行、列和单元格是非常常见的需求。本文将介绍如何使用 Spire.XLS for .NET 和 C# 在 Excel 中复制行、列和单元格并保留格式。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

相关链接:

在日常操作 Excel 文档时,复制行、列和单元格是非常常见的需求。无论是整理数据、创建模板还是生成报表,复制操作都能大大提高工作效率。然而,复制不仅仅是将数据从一个位置拷贝到另一个位置,通常还涉及如何准确保留原始单元格的格式、公式、样式以及其他相关属性。这篇文章将介绍如何使用 Spire.XLS for .NET 和 C# 在 Excel 中复制行、列和单元格并保留格式。

Spire.XLS for.net下载 

安装 Spire.XLS for .NET

首先,您需要将 Spire.XLS for .NET 包含的 DLL 文件作为引用添加到您的 .NET 项目中。

PM> Install-Package Spire.XLS

C# 在 Excel 中复制行

  • 要在 Excel 中复制行并保留格式,你可以使用 Worksheet.CopyRow(CellRange sourceRow, Worksheet destSheet, int destRowIndex, CopyRangeOptions copyOptions) 方法。通过 CopyRangeOptions 参数,你可以灵活设置复制选项,例如:复制所有格式、复制条件格式、复制数据验证,或者仅复制公式的结果值等等。具体步骤如下:
  • 创建 Workbook 类的对象。
  • 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
  • 使用 Workbook.Worksheets[index] 属性获取源工作表和目标工作表。
  • 使用 Worksheet.Rows[index] 属性获取要复制的行。
  • 使用 Worksheet.CopyRow(sourceRow, destSheet, destRowIndex, copyOptions) 方法从源工作表复制该行及其格式到目标工作表。
  • 将源行中单元格的列宽复制到目标行中相应的单元格。
  • 使用 Workbook.SaveToFile() 方法保存工作簿到文件。
using Spire.Xls;
namespace CopyRows
{
   internal class Program
   {
       static void Main(string[] args)
       {
           // 创建 Workbook 对象
           Workbook workbook = new Workbook();
           // 加载 Excel 文件
           workbook.LoadFromFile("示例.xlsx");
           // 获取源工作表
           Worksheet sheet1 = workbook.Worksheets[0];
           // 获取目标工作表
           Worksheet sheet2 = workbook.Worksheets[1];
           // 获取要复制的行
           CellRange row = sheet1.Rows[0];
           // 将源工作表的行复制到目标工作表的第一行
           sheet1.CopyRow(row, sheet2, 1, CopyRangeOptions.All);
           int columns = sheet1.Columns.Length;
           // 将源行的列宽复制到目标行的相应单元格
           for (int i = 0; i < columns; i++)
           {
               double columnWidth = row.Columns[i].ColumnWidth;
               sheet2.Rows[0].Columns[i].ColumnWidth = columnWidth;
           }
           // 保存修改后的工作簿
           workbook.SaveToFile("复制行.xlsx", ExcelVersion.Version2016);
           workbook.Dispose();
       }
   }
}

C# 在 Excel 中复制列

同样地,要在 Excel 工作表中复制列并保留格式,你可以使用 Worksheet.CopyColumn(CellRange sourceColumn, Worksheet destSheet, int destColIndex, CopyRangeOptions copyOptions) 方法。具体步骤如下:

  • 创建 Workbook 类的对象。
  • 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
  • 使用 Workbook.Worksheets[index] 属性获取源工作表和目标工作表。
  • 使用 Worksheet.Columns[index] 属性获取要复制的列。
  • 使用 Worksheet.CopyColumn(CellRange sourceColumn, Worksheet destSheet, int destColIndex, CopyRangeOptions copyOptions) 方法从源工作表复制该列及其格式到目标工作表。
  • 将源列中单元格的行高复制到目标列中相应的单元格。
  • 使用 Workbook.SaveToFile() 方法保存工作簿到文件。
using Spire.Xls;
namespace CopyColumns
{
   internal class Program
   {
       static void Main(string[] args)
       {
           // 创建 Workbook 对象
           Workbook workbook = new Workbook();
           // 加载 Excel 文件
           workbook.LoadFromFile("示例.xlsx");
           // 获取源工作表
           Worksheet sheet1 = workbook.Worksheets[0];
           // 获取目标工作表
           Worksheet sheet2 = workbook.Worksheets[1];
           // 获取要复制的列
           CellRange column = sheet1.Columns[0];
           // 将源工作表的列复制到目标工作表的第一列
           sheet1.CopyColumn(column, sheet2, 1, CopyRangeOptions.All);
           int rows = column.Rows.Length;
           // 将源列的行高复制到目标列的相应单元格
           for (int i = 0; i < rows; i++)
           {
               double rowHeight = column.Rows[i].RowHeight;
               sheet2.Columns[0].Rows[i].RowHeight = rowHeight;
           }
           // 保存修改后的工作簿
           workbook.SaveToFile("复制列.xlsx", ExcelVersion.Version2016);
           workbook.Dispose();
       }
   }
}

C# 在 Excel 中复制单元格

除了复制行和列以外,Spire.XLS for .NET 还提供了 CellRange.Copy(CellRange destRange, CopyRangeOptions copyOptions) 方法,支持复制特定单元格或单元格区域。具体步骤如下:

  • 创建 Workbook 类的对象。
  • 使用 Workbook.LoadFromFile() 方法加载 Excel 文件。
  • 使用 Workbook.Worksheets[index] 属性获取源工作表和目标工作表。
  • 使用 Worksheet.Range[] 属性获取源单元格区域和目标单元格区域。
  • 使用 CellRange.Copy(CellRange destRange, CopyRangeOptions copyOptions) 方法从源工作表复制源单元格区域及其格式到目标工作表的目标单元格区域。
  • 将源单元格区域的行高和列宽复制到目标单元格区域。
  • 使用 Workbook.SaveToFile() 方法保存工作簿到文件。
using Spire.Xls;
namespace CopyCells
{
   internal class Program
   {
       static void Main(string[] args)
       {
         // 创建 Workbook 对象
           Workbook workbook = new Workbook();
           // 加载 Excel 文件
           workbook.LoadFromFile("示例.xlsx");
           // 获取源工作表
           Worksheet sheet1 = workbook.Worksheets[0];
           // 获取目标工作表
           Worksheet sheet2 = workbook.Worksheets[1];
           // 获取源单元格区域
           CellRange range1 = sheet1.Range["A1:E7"];
           // 获取目标单元格区域
           CellRange range2 = sheet2.Range["A1:E7"];
           // 将源单元格区域复制到目标单元格区域
           range1.Copy(range2, CopyRangeOptions.All);
           // 将源单元格区域的行高和列宽复制到目标单元格区域
           for (int i = 0; i < range1.Rows.Length; i++)
           {
               CellRange row = range1.Rows[i];
               for (int j = 0; j < row.Columns.Length; j++)
               {
                   CellRange column = row.Columns[j];
                   range2.Rows[i].Columns[j].ColumnWidth = column.ColumnWidth;
                   range2.Rows[i].RowHeight = row.RowHeight;
               }
           }
           // 保存修改后的工作簿
           workbook.SaveToFile("复制单元格.xlsx", ExcelVersion.Version2016);
           workbook.Dispose();
       }
   }
}

欢迎下载|体验更多E-iceblue产品

获取更多信息请咨询慧都在线客服  ;技术交流Q群(767755948)

慧都年终大促火热开启


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@wqylolg.cn

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关产品
Spire.Office for .NET

专业的.NET Office套件,涵盖office文档创建、编辑、转换、管理和OCR内容识别等操作

Spire.XLS for .NET

Spire.XLS for .NET是专业.NET Excel组件,快速完成对Excel各类编程操作

Spire.Doc for .NET

Spire.Doc for .NET 是一款专门对 Word 文档进行操作的 .NET 类库。

Spire.PDF for .NET

Spire.PDF for .NET是独立的PDF控件,用于.NET程序中创建、编辑和操作PDF文档

Spire.Office for WPF

Spire.Office for WPF是一款包含e-iceblue所有WPF文档管理组件的套包。

title
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP