报表中的Excel操作之Aspose.Cells(Excel模板)
2016-03-02 13:38
645 查看
原文:报表中的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 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 }
多的不说,我们先来利用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 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 }
相关文章推荐
- ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction差别
- 我心目中的Asp.net核心对象
- 使用Aspose.Word的基础知识整理
- Remove highlight from document(Aspose Word 删除高亮)
- ASP.NET MVC @helper使用说明
- [ASP.NET] ASP.NET Identity 中 ClaimsIdentity 解析
- Asp.Net_Web身份验证
- ASP.NET MVC 生命周期
- ABP Asp.net(c#) 找不到组件问题的解决
- 细说ASP.NET Forms身份认证
- 关于MCASP和slot的一些点
- ASP.NET MVC IOC 之AutoFac攻略
- asp.net+js实现批量编码与解码的方法
- aspx后缀映射成html
- ASP.NET Core – 2300% More Requests Served Per Second
- asp.net+js实现批量编码与解码的方法
- ASP.NET Mvc开发之删除修改数据
- 7天 搞定 ASP.NET MVC - 第2天
- 谈谈IIS与ASP.NET管道
- asp.net页面之间的跳转