首先看下Excel中合并单元格的效果:
其中单元格区域的C2到D3被合并。要用组件Acey.ExcelX如何能生成这样合并的效果呢?
首先:导入命名空间。
using Acey.ExcelX;
1 //创建工作薄。 2 IWorkbook workbook = ExcelxApplication.CreateWorkbook(); 3 //获取指定索引的工作表。 4 IWorksheet worksheet = workbook.Worksheets[0]; 5 //根据单元格的名称获取单元格对象。 6 ICell cell = worksheet.Cells["C2"]; 7 //向单元格对象中赋值。 8 cell.Value = "AceyOffice"; 9 //创建单元格区域。 10 IRange range = worksheet.Cells.CreateRange("C2:D3"); 11 //合并该单元格区域。 12 range.Merge(); 13 14 //保存该工作薄为指定类型。 15 string xlsFile = @"d:\MergeCells.xls"; 16 workbook.SaveAs(xlsFile, FileFormat.Excel97To2003);
要实现合并单元格效果,只要实现2个步骤就能实现:
1.创建要操作的单元格区域:其中 IRange range = worksheet.Cells.CreateRange("C2:D3");参数C2:D3表示单元格区域的范围。
2.合并该单元格区域:通过方法range.Merge();来实现合并的效果。
只要编写上述代码就能轻松实现单元格合并的效果。但编程人员在实现项目中可能需要一个工作表中有多处实现合并的效果,是否要对每个合并的单元格区域都要创建
单元格区域后,再合并该单元格区域呢。你可以用这样的方式去实现,但是Acey.ExcelX提供了更为简单和快捷的方式,能实现不需要创建Range对象也能实现合并的
效果,其中IWorksheet接口提供了方法void Merge(int firstRow, int firstColumn, int totalRows, int totalColumns);就能帮助实现合并的效果,其中参数firstRow
和firstColumn表示单元格开始行和列的索引(以零为基数),totalRows指定要合并的行数,totalColumns指定要合并的列数。
第一种合并方法代码:
//创建单元格区域。
IRange range = worksheet.Cells.CreateRange("C2:D3");
//合并该单元格区域。
range.Merge();
被替换为下面的代码:
//合并工作表中指定单元格区域。
worksheet.Merge(1, 2, 2, 2);
不需要创建Range对象就能简单快速的实现合并单元格区域的效果。
总结
无需安装微软Excel,用代码也能很轻松实现单元格合并的效果。 下载最新版本(已支持中文版)到www.aceyoffice.com。如果您想对Acey.ExcelX有进一步了解,在网站下载帮助和Demo。