aspose.cells html excel导出,aspose.cells使用excel模板生成excel

参考博客:http://www.cnblogs.com/wuhuacong/archive/2011/02/23/1962147.html使用的aspose类库: http://download.csdn.net/detail/anderson_linqf/4901496大

参考博客:

使用的aspose类库:

大家好,客户很多时候会给一个excel模板我们,然后按照所给的excel格式进行报表。

比如,用户给了下面一个excel模板:(上面是一个标题,下面是一个货物的信息)

aspose.cells html excel导出,aspose.cells使用excel模板生成excel_第1张图片

我以往的做法:从数据库里面拿到所需数据之后保存在一个datatable里面,然后就傻傻的:

cell[2,0].value = ****

cell[2,1].value =*****

cell[3,0].value = ***

********一个一个往空格里面填

这样的想法的确很简单,哪个格子需要填数据,就往哪个格子里面填东西,但是缺点也很容易想到:

这个excel的格式是不能改变的,如果用户突然打了个电话来说:对不起,能不能把单价放在前面,货物名放后面啊???

这时候,苦逼的码农就要重新:

cell[2,0].value = ####

cell[2,1].value =####

cell[3,0].value = #####

重新一个格子一个格子的填,那就太郁闷了。

我的意思是:不能把excel看出一个空表,,写程序就是为了填好这个空表!!!

现在从aspose.cells中学会了一招:把excel看成一个说明文档,这个说明文档指导程序怎么填写数据。

下面是一个新的解决方法:

首先把excel模板的数据部分删掉,剩下主题,然后补充上你的数据库里面的查询表面和字段名:

aspose.cells html excel导出,aspose.cells使用excel模板生成excel_第2张图片

那么查出来的datatable如果有5行就往excel空表里面填写5行,如果仅有1行那么只往excel空表填一个。

代码如下:

//取所需的数据(自己写一个函数)

DataTable tb = GetDataTable("select goodsName , goodsPrice from tbGoods", "tbGoods");

Aspose.Cells.WorkbookDesigner designer = new WorkbookDesigner();

//给模板对象设置数据源

designer.SetDataSource(tb);

//excel模板的地址

string excelModel = @"E:\chengXu\ExcelTest3\ExcelTest3\files\mydesigner.xls";

designer.Open(excelModel);

designer.Process();//全自动赋值

//新生成的excel的保存地址

string fileToSave = @"E:\chengXu\ExcelTest3\ExcelTest3\files\create1.xls";

if (System.IO.File.Exists(fileToSave) == true)

{

System.IO.File.Delete(fileToSave);

}

designer.Workbook.Save(fileToSave);

aspose.cells还有用法值得学习,百度一下吧!

你可能感兴趣的:(aspose.cells,html,excel导出)