报表中的Excel操作之Aspose.Cells(Excel模板)

      本篇中将简单记录下Aspose.Cells这个强大的Excel操作组件。这个组件的强大之处,就不多说,对于我们的报表总是会有导出Excel的处理,如果你使用微软Excel的com组件,那么对于简单的操作还行,但是多余复杂的模板,那将是一个令人头疼的事。在Aspose.Cells之下,将是一个简单的事情。他可以导入导出excel操作,在本节将要说的就是他的际遇excel模板的导出强大功能。

    多的不说,我们先来利用Northwind做两个小demo。先说说Aspose.Cells的模板语法:

  1. &=DataSource.Field,&=[DataSource].[Field]是对DataTable和几何类型的引用,将会从当前行开始竖直向下生成多行数据。
  2. &=$data:是对变量或数组的引用。数组存在skiphorizontal等属性,具体参见官方网站
  3. &=&=动态公式计算;{r}当前行,{c}当前列,{-n},{n}当前行或列的偏移量前n或后n。
  4. &==是动态计算,如excel,if等语句。(if(logic_test,true_value,false_value))

还有其他更为复杂的汇总计算的表达式,这里也不在这节多讲,有兴趣的朋友,可以去官网看看。我们先来个简单的例子,光说,总是不行的,还是要代码实践才能说明一切:

Excel模板1:

代码:在我们的代码中添加数据源:

如下:

 1 var sql = @"select * from Customers 
 2                     where Customers.City ='London'"; 
 3         var dt=GetDataTable(sql); 
 4         dt.TableName = "Customers";         
 5         WorkbookDesigner designer = new WorkbookDesigner(); 
 6         designer.Open(MapPath("~/1.xls")); 
 7         //数据源 
 8         designer.SetDataSource(dt); 
 9         //报表单位 
10         designer.SetDataSource("ReportUtils", "xxxxx有限公司客户信息"); 
11         designer.SetDataSource("ReportAdd", "London"); 
12         //截止日期 
13         designer.SetDataSource("ReportDate", DateTime.Now.ToString("yyyy年MM月dd日"));        
14 
15         designer.Process(); 
16 
17         designer.Save(string.Format("report.xls"), SaveType.OpenInExcel, FileFormatType.Excel2003, Response); 
18         Response.Flush(); 
19         Response.Close(); 
20         designer = null; 
21         Response.End();

代码很简单,就是添加了一个datatable,和几个变量的数据源,我们所生成excel为:

这就完成了我们的一个简单的多表头数据导出报表。

Demo2中我们将来尝试下他的统计公式和函数计算(利用&=&=计算):

Excel模板2:Northwind的Order Details表

代码:和上面不同的就只有几句:


1 var order = GetDataTable(@"select * from [Order Details] 
2                         where [Order Details].OrderID=10248"); 
3         order.TableName = "Order";

5 designer.SetDataSource(order);

Excel效果:

 Excel模板下载 全部代码:

 1 protected void Page_Load(object sender, EventArgs e) 
 2    { 
 3        var s=Aspose.Cells.CellsHelper.GetVersion();   
 4        var sql = @"select * from Customers 
 5                    where Customers.City ='London'"; 
 6        var dt=GetDataTable(sql); 
 7        dt.TableName = "Customers"; 
 8        var order = GetDataTable(@"select * from [Order Details] 
 9                        where [Order Details].OrderID=10248"); 
10        order.TableName = "Order"; 
11        WorkbookDesigner designer = new WorkbookDesigner(); 
12        designer.Open(MapPath("~/1.xls")); 
13        //数据源 
14        designer.SetDataSource(dt); 
15        designer.SetDataSource(order); 
16        //报表单位 
17        designer.SetDataSource("ReportUtils", "xxxxx有限公司客户信息"); 
18        designer.SetDataSource("ReportAdd", "London"); 
19        //截止日期 
20        designer.SetDataSource("ReportDate", DateTime.Now.ToString("yyyy年MM月dd日"));        
21 
22        designer.Process(); 
23 
24        designer.Save(string.Format("report.xls"), SaveType.OpenInExcel, FileFormatType.Excel2003, Response); 
25        Response.Flush(); 
26        Response.Close(); 
27        designer = null; 
28        Response.End(); 
29    }

 

作者:破  狼 
出处:http://www.cnblogs.com/whitewolf/ 
本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。该文章也同时发布在我的独立博客中-个人独立博客博客园--破狼51CTO--破狼。http://www.cnblogs.com/whitewolf/archive/2011/03/21/Aspose_Cells_Template1.html

时间: 2024-08-30 10:01:42

报表中的Excel操作之Aspose.Cells(Excel模板)的相关文章

Aspose.Cells for .NET 7.0.0发布 电子报表的.NET组件

Aspose.Cells for http://www.aliyun.com/zixun/aggregation/13480.html">.NET 7.0.0版本支持更改透视表项目的位置.当你尝试用特殊字符命名工作表,将出现一个异常.你可以使应用条件格式的HTML文件.公式计算引擎的性能提高.自动调整列功能增强,能更有效地工作. Aspose.Cells.NET提供的网格控制(GridDesktop和GridWeb)现在支持导入Excel文件. Aspose.Cells for .NET是

excel-请问在.net中aspose.cells支持由Excel的名称管理器来获取单元格或者表格吗?

问题描述 请问在.net中aspose.cells支持由Excel的名称管理器来获取单元格或者表格吗? 请问aspose.cells支持由Excel的名称管理器来获取单元格或者表格吗?

Aspose.Cells for Java 7.2.1发布 电子报表的Java组件

Aspose.Cells 是一个用于电子报表的Java组件,无需使用http://www.aliyun.com/zixun/aggregation/11208.html">Microsoft Excel就可以操作.功能包括:创建电子表格,打开加密的Excel文件,宏命令,VBA,Unicode,公式设置,数据透视,从JDBC ResultSet导入数据.支持的格式有CSV.SpreadsheetML.PDF格式,ODS.Excel 97 Excel 2007中所有的文件格式都支持.支持高级

Aspose.Cells for Java 7.0.1发布 电子报表的Java组件

Aspose.Cells是一个用于电子报表的Java组件,无需使用http://www.aliyun.com/zixun/aggregation/11208.html">Microsoft Excel就可以操作.功能包括:创建电子表格,打开加密的Excel文件,宏命令,VBA,Unicode,公式设置,数据透视,从JDBC ResultSet导入数据.支持的格式有CSV.SpreadsheetML.PDF格式,ODS.Excel 97 Excel 2007中所有的文件格式都支持.支持高级数

Aspose.Cells for .NET 7.2.0发布 电子报表的.NET组件

Aspose.Cells for http://www.aliyun.com/zixun/aggregation/13480.html">.NET 是一个电子报表的.NET组件.在无需安装Microsoft Excel的情况下,服务器提供了最灵活的组件,允许.NET 应用程序创建和管理Excel 电子表格.这套功能丰富的组件,提供的不仅仅是数据的输入和输出,有了这些组件,开发者能够输入和输出数据,在各个层面格式编排电子表格.导入图象.应用和计算复杂公式,Excel 数据流,保存为多种格式,

请助。关于用Aspose.cells组件生成EXCLE中的Checkbox问题

问题描述 本来在做的项目是利用Aspose.cells组件.对已有的EXCEL模板.进行内容的填写或者修改.现在遇到的问题是模板中的Checkbox控件已经存在.需要定位到这个Checkbox控件一直不知道怎么定位.DEMO里面有提供intindex=excel.Worksheets[0].CheckBoxes.Add(15,15,20,100);CheckBoxcheckBox=excel.Worksheets[0].CheckBoxes[index];checkBox.Text="Check

《Python自动化运维:技术与最佳实践》一3.1 数据报表之Excel操作模块

3.1 数据报表之Excel操作模块 Excel是当今最流行的电子表格处理软件,支持丰富的计算函数及图表,在系统运营方面广泛用于运营数据报表,比如业务质量.资源利用.安全扫描等报表,同时也是应用系统常见的文件导出格式,以便数据使用人员做进一步加工处理.本节主要讲述利用Python操作Excel的模块XlsxWriter(https://xlsxwriter.readthedocs.org),可以操作多个工作表的文字.数字.公式.图表等.XlsxWriter模块具有以下功能: 100%兼容的Exc

EpPlus读取生成Excel帮助类+读取csv帮助类+Aspose.Cells生成Excel帮助类

大部分功能逻辑都在,少量自定义异常类和扩展方法 ,可用类似代码自己替换 //EpPlus读取生成Excel帮助类+读取csv帮助类,epplus只支持开放的Excel文件格式:xlsx,不支持 xls格式 /* ============================================================================== * 功能描述:EppHelper * 创 建 者:蒲奎民 * 创建日期:2016-07-21 14:30:35 * CLR Ver

Aspose.Cells 读取受保护有密码的Excel文件_实用技巧

最近遇到一个需求,要能够读取受密码保护的Excel内容,之前都是直接读取Excel中的数据,不需要做任何其他的处理. 当Excel双击的时候,需要输入密码,在使用Aspose.Cells 组件读取的时候就会报错 Workbook book = new Workbook(fullFilename, new LoadOptions() { Password="111111" }); Worksheet sheet = book.Worksheets[0]; Cells cells = sh