报表中的Excel操作之Aspose.Cells(Excel模板)
本篇中将简单记录下Aspose.Cells这个强大的Excel操作组件。这个组件的强大之处,就不多说,对于我们的报表总是会有导出Excel的处理,如果你使用微软Excel的com组件,那么对于简单的操作还行,但是多余复杂的模板,那将是一个令人头疼的事。在Aspose.Cells之下,将是一个简单的事情。他可以导入导出excel操作,在本节将要说的就是他的际遇excel模板的导出强大功能。
多的不说,我们先来利用Northwind做两个小demo。先说说Aspose.Cells的模板语法:
- &=DataSource.Field,&=[DataSource].[Field]是对DataTable和几何类型的引用,将会从当前行开始竖直向下生成多行数据。
- &=$data:是对变量或数组的引用。数组存在skip,horizontal等属性,具体参见官方网站
- &=&=动态公式计算;{r}当前行,{c}当前列,{-n},{n}当前行或列的偏移量前n或后n。
- &==是动态计算,如excel,if等语句。(if(logic_test,true_value,false_value))
还有其他更为复杂的汇总计算的表达式,这里也不在这节多讲,有兴趣的朋友,可以去官网看看。我们先来个简单的例子,光说,总是不行的,还是要代码实践才能说明一切:
Excel模板1:
代码:在我们的代码中添加数据源:
如下:
- 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为:
这就完成了我们的一个简单的多表头数据导出报表。
Demo2中我们将来尝试下他的统计公式和函数计算(利用&=&=计算):
Excel模板2:Northwind的Order Details表
代码:和上面不同的就只有几句:
- 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效果:
Excel模板下载 全部代码:
- 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 }
- 复制代码
本文转自 破狼 51CTO博客,原文链接:http://blog.51cto.com/whitewolfblog/835228,如需转载请自行联系原作者
报表中的Excel操作之Aspose.Cells(Excel模板)相关推荐
- C# Winfrom Excel表格导出 Aspose.Cells超简单方式
C# Winfrom Excel表格导出 Aspose.Cells超简单方式 首先需要下载 Aspose.Cells.dll,Aspose.Slides.dll,Aspose.Words.dll 这三 ...
- Excel操作 Microsoft.Office.Interop.Excel.dll的使用
原文地址为: Excel操作 Microsoft.Office.Interop.Excel.dll的使用 先说说题外话,前段时间近一个月,我一直在做单据导入功能,其中就涉及到Excel操作,接触Exc ...
- Aspose.Cells Excel删除行
导出Excel所引用的dll,Aspose.Cells.dll下载地址: http://download.csdn.net/detail/qq285679784/8569327 /// <sum ...
- Asp.net高效导出excel篇之Aspose导出excel
上周在博客中写了一篇<Asp.net高效导出Excel篇>在发布之后收到很多热心网友的建议--使用Excel第三方引擎如NOPI.Aspose.cell等导出Excel,优点:效率高.不需 ...
- Delphi Excel 操作大全【CreateOleObject( 'Excel.Application' )】
(一) 使用动态创建的方法 首先创建 Excel 对象,使用ComObj: var ExcelApp: Variant; ExcelApp := CreateOleObject( 'Excel.App ...
- 数据转换excel操作 Microsoft.Office.Interop.Excel.dll的使用
引用:http://www.cnblogs.com/lanjun/archive/2012/06/17/2552920.html 先说说题外话,前段时间近一个月,我一直在做单据导入功能,其中就涉及到E ...
- 【转载】Excel操作 Microsoft.Office.Interop.Excel.dll的使用
http://www.cnblogs.com/lanjun/archive/2012/06/17/2552920.html 先说说题外话,前段时间近一个月,我一直在做单据导入功能,其中就涉及到Exce ...
- 【转】.NET引用Excel操作时无法关闭Excel.exe进程的解决方法
http://blog.csdn.net/hsyj_0001/article/details/7686364 在使用Office类库Microsoft.Office.Interop.Excel导 ...
- 在Python中使用Pandas.DataFrame对Excel操作笔记一 - 从Excel里面获取说需要的信息
近期和朋友小A聊天的时候,总是听小A说工作越来越烦,有大量的Excel表格需要分析整理 ~~~,需要总结各种数据,做统计汇总之类,@#¥%%~~.像我等懒人,是不能容忍做大量重复性工作的.以懒人的观点 ...
最新文章
- Android 64K解决办法
- php自定义中文分词方法,一个用PHP写的中文分词函数_php
- 动态的添加和丢弃关键点---32
- 以下题目需要当场编写实现,,答案自己写
- 动态切换view视图viewflipper组件
- 一步一步写算法(之链表排序)
- 职场三剑客,助你从容闯职场
- JAVA Maven和ANT 安装 Linux(Ubuntu/Centos),Mac
- 国家标准《软件工程 软件开发成本度量规范》GB/T 36964-2018正式发布
- 《微积分:一元函数积分学》——基本积分表
- Android获取手机Cpu温度
- i3 10105f对比i5 10400f选哪个好
- Navicat定期备份MySQL数据库,定期清理备份文件
- PAT1062 最简分数
- 【无标题】黑炫酷的监控界面,实际上是用了什么开源工具?
- CefSharp内核浏览器之C#与js的互相调用
- 程序员的奋斗史(四十一)——大学断代史(五)——我的娱乐方式
- 全球便携式彩色超声设备行业收入预计2028年达到12.755亿美元
- 虞凌云:5G网络技术发展将会带来这些变革
- NDK OpenGL ES 3.0 开发(七):Transform Feedback