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

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

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

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

Excel模板2:Northwind的Order Details表

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

  1. Code
  2. 1 var order = GetDataTable(@"select * from [Order Details]
  3. 2                         where [Order Details].OrderID=10248");
  4. 3         order.TableName = "Order";
  5. 4
  6. 5 designer.SetDataSource(order);
  7. 复制代码

Excel效果:

Excel模板下载 全部代码:

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

本文转自 破狼 51CTO博客,原文链接:http://blog.51cto.com/whitewolfblog/835228,如需转载请自行联系原作者

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

  1. C# Winfrom Excel表格导出 Aspose.Cells超简单方式

    C# Winfrom Excel表格导出 Aspose.Cells超简单方式 首先需要下载 Aspose.Cells.dll,Aspose.Slides.dll,Aspose.Words.dll 这三 ...

  2. Excel操作 Microsoft.Office.Interop.Excel.dll的使用

    原文地址为: Excel操作 Microsoft.Office.Interop.Excel.dll的使用 先说说题外话,前段时间近一个月,我一直在做单据导入功能,其中就涉及到Excel操作,接触Exc ...

  3. Aspose.Cells Excel删除行

    导出Excel所引用的dll,Aspose.Cells.dll下载地址: http://download.csdn.net/detail/qq285679784/8569327 /// <sum ...

  4. Asp.net高效导出excel篇之Aspose导出excel

    上周在博客中写了一篇<Asp.net高效导出Excel篇>在发布之后收到很多热心网友的建议--使用Excel第三方引擎如NOPI.Aspose.cell等导出Excel,优点:效率高.不需 ...

  5. Delphi Excel 操作大全【CreateOleObject( 'Excel.Application' )】

    (一) 使用动态创建的方法 首先创建 Excel 对象,使用ComObj: var ExcelApp: Variant; ExcelApp := CreateOleObject( 'Excel.App ...

  6. 数据转换excel操作 Microsoft.Office.Interop.Excel.dll的使用

    引用:http://www.cnblogs.com/lanjun/archive/2012/06/17/2552920.html 先说说题外话,前段时间近一个月,我一直在做单据导入功能,其中就涉及到E ...

  7. 【转载】Excel操作 Microsoft.Office.Interop.Excel.dll的使用

    http://www.cnblogs.com/lanjun/archive/2012/06/17/2552920.html 先说说题外话,前段时间近一个月,我一直在做单据导入功能,其中就涉及到Exce ...

  8. 【转】.NET引用Excel操作时无法关闭Excel.exe进程的解决方法

     http://blog.csdn.net/hsyj_0001/article/details/7686364 在使用Office类库Microsoft.Office.Interop.Excel导 ...

  9. 在Python中使用Pandas.DataFrame对Excel操作笔记一 - 从Excel里面获取说需要的信息

    近期和朋友小A聊天的时候,总是听小A说工作越来越烦,有大量的Excel表格需要分析整理 ~~~,需要总结各种数据,做统计汇总之类,@#¥%%~~.像我等懒人,是不能容忍做大量重复性工作的.以懒人的观点 ...

最新文章

  1. Android 64K解决办法
  2. php自定义中文分词方法,一个用PHP写的中文分词函数_php
  3. 动态的添加和丢弃关键点---32
  4. 以下题目需要当场编写实现,,答案自己写
  5. 动态切换view视图viewflipper组件
  6. 一步一步写算法(之链表排序)
  7. 职场三剑客,助你从容闯职场
  8. JAVA Maven和ANT 安装 Linux(Ubuntu/Centos),Mac
  9. 国家标准《软件工程 软件开发成本度量规范》GB/T 36964-2018正式发布
  10. 《微积分:一元函数积分学》——基本积分表
  11. Android获取手机Cpu温度
  12. i3 10105f对比i5 10400f选哪个好
  13. Navicat定期备份MySQL数据库,定期清理备份文件
  14. PAT1062 最简分数
  15. 【无标题】黑炫酷的监控界面,实际上是用了什么开源工具?
  16. CefSharp内核浏览器之C#与js的互相调用
  17. 程序员的奋斗史(四十一)——大学断代史(五)——我的娱乐方式
  18. 全球便携式彩色超声设备行业收入预计2028年达到12.755亿美元
  19. 虞凌云:5G网络技术发展将会带来这些变革
  20. NDK OpenGL ES 3.0 开发(七):Transform Feedback

热门文章

  1. Starlink卫星动力学系统仿真建模第一讲
  2. 网页抓取:PHP实现网页爬虫方式小结
  3. win11如何连接打印机 win11连接打印机的设置方法
  4. Scrum板与Kanban如何抉择?敏捷工具:bbtbo板与按照lskmalbg
  5. JAVA组件设计原则(二)原则一:精准解决共性问题(摘自《java组件设计》)
  6. 个人理财小助手 —— 数据库(二)
  7. 教女朋友学Python是道送命题
  8. 中山LED芯片IC方案!JLC1041, JLK105系列两款超实用
  9. 关于Axure的基本框架
  10. 华为数字化转型之道 结语 数字化转型的8个成功要素