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

简介: 原文:报表中的Excel操作之Aspose.Cells(Excel模板)      本篇中将简单记录下Aspose.Cells这个强大的Excel操作组件。这个组件的强大之处,就不多说,对于我们的报表总是会有导出Excel的处理,如果你使用微软Excel的com组件,那么对于简单的操作还行,但是多余复杂的模板,那将是一个令人头疼的事。
原文: 报表中的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:

excelTemplate1

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

如下:

img_405b18b4b6584ae338e0f6ecaf736533.gif View Code
 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为:

{95%_{ZS19KN3U_1{MX{I5G

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

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

Excel模板2:Northwind的Order Details表

4~0N[~6TS338$PV53N%7MLR

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

img_405b18b4b6584ae338e0f6ecaf736533.gif View Code
1  var order  =  GetDataTable( @" select * from [Order Details] 
2                          where [Order Details].OrderID=10248 " ); 
3          order.TableName  =   " Order " ;
4 
5  designer.SetDataSource(order);

Excel效果:

)U5{C(`}@4KH7LIRLY`N8VL

 Excel模板下载 全部代码:

img_405b18b4b6584ae338e0f6ecaf736533.gif View Code
 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     }

 

目录
相关文章
|
2月前
|
Java Apache
EasyPOI操作Excel从零入门
我们不造轮子,只是轮子的搬运工。(其实最好是造轮子,造比别人好的轮子)开发中经常会遇到excel的处理,导入导出解析等等,java中比较流行的用poi,但是每次都要写大段工具类来搞定这事儿,此处推荐一个别人造好的轮子,EasyPOI封装了Apache的POI技术,实现了基本的Excel导入、导出从此不再为Excel操作头疼~
329 2
EasyPOI操作Excel从零入门
|
2月前
|
存储 数据处理 索引
Python操作Excel常用方法汇总
Python操作Excel常用方法汇总
188 0
|
5天前
|
C#
C#NPOI操作Excel详解
C#NPOI操作Excel详解
9 0
|
16天前
|
数据挖掘 数据库连接 数据处理
精通Excel意味着熟练掌握基础及进阶操作
精通Excel意味着熟练掌握基础及进阶操作,如数据透视表、VBA编程和自定义公式。提升效率的技巧包括善用快捷键、自动化重复任务、巧用公式与函数(如SUM和VLOOKUP)、利用数据透视表分析数据、设置条件格式、建立数据库连接、编写自定义函数、创建数据图表、使用模板和进行分组汇总。这些方法能有效提升数据分析和处理能力,优化工作效率。
111 2
|
1月前
|
JavaScript
【sgExcelGrid】自定义组件:简单模拟Excel表格拖拽、选中单元格、横行、纵列、拖拽圈选等操作
【sgExcelGrid】自定义组件:简单模拟Excel表格拖拽、选中单元格、横行、纵列、拖拽圈选等操作
【sgExcelGrid】自定义组件:简单模拟Excel表格拖拽、选中单元格、横行、纵列、拖拽圈选等操作
|
1月前
|
Python
补充python操作excel示例xlwings常用函数
补充python操作excel示例xlwings常用函数
118 0
|
1月前
|
Python
python使用tkinter库,封装操作excel为GUI程序
python使用tkinter库,封装操作excel为GUI程序
253 0
|
1月前
|
Unix API 网络架构
python操作excel示例(xlwings库)有实战例子(生成温度表)
python操作excel示例(xlwings库)有实战例子(生成温度表)
200 0
|
2月前
|
Java
SpringBoot操作excel文件【工具类】
SpringBoot操作excel文件【工具类】
189 0