AceyOffice教程--复制列

在操作Excel内容时,难免会用到复制行和列等操作,复制行操作已在上一章http://www.cnblogs.com/happyfish78/archive/2013/01/15/2860587.html进行过具体描述,下面我们

看下如何进行复制列的操作,首先看下要操作的模板,如图:

一、微软Excel实现操作

如果要想将第2列中内容复制到第5列中,要如何才能实现。先看下微软Excel中是如何进行操作的:

1.首先选择要被复制的列,简单鼠标右键,选择复制选项。

2.再选择要复制的列,鼠标右键选择粘贴选项即可。

只要简单2个步骤就能实现复制列的效果,那下面我们再来看下如何用Acey.ExcelX组件如何实现,和Excel操作的效果相比是否简单、清晰呢?

 

二、用Acey.ExcelX组件实现

首先导入命名空间:

using Acey.ExcelX;

 public void Sample()
 {
    string path = @"Files\CopyColumn.xls";
    //创建工作薄通过打开。
   IWorkbook workbook = ExcelxApplication.Open(path);
    //获取指定索引的工作表。
   IWorksheet worksheet = workbook.Worksheets[0];
    //获取指定列对象。
   IColumn sourceColumn = worksheet.Columns["B"];
    //获取指定目标列对象。
   IColumn destColumn = worksheet.Columns["E"];
    //复制指定源行对象。
   destColumn.Copy(sourceColumn);

     path = @"d:\book1.xls";
     workbook.SaveAs(path, FileFormat.Excel97To2003);
}

运行上面代码生成Excel的效果如下:

先分析下代码的含义:

1. string path = @"Files\CopyColumn.xls"; IWorkbook workbook = ExcelxApplication.Open(path);创建工作薄对象通过打开指定文件。
2. IWorksheet worksheet = workbook.Worksheets[0]; 获取指定索引的工作表对象,这里我们获取是工作薄中第一个工作表对象。

3.IColumn sourceColumn = worksheet.Columns["B"]; 创建列对象通过列的名称,Acey.ExcelX组件接口除了支持通过列名称来获取列对象,也指定通过列索引来

获取列对象,所以上面的代码可以被写成:IColumn sourceColumn = worksheet.Columns[1];,用列名称获取列对象更清晰。

4.destColumn.Copy(sourceColumn); 将指定源列对象的内容复制到目标列对象中。Copy方法:复制内容(包含数据和样式)。IColumn对象除了指定Copy方法外还

支持CopyFormat方法,该方法只复制样式,不复制数据。

说明:样式包含边框、字体、数据类型、对齐方式、角度和列宽等因素。

 

三、总结

用Acey.ExcelX组件能轻松实现列复制操作。

 

 

 

posted @ 2013-01-16 09:11  AceyOffice  阅读(181)  评论(0编辑  收藏  举报