相信使用过MS office的API导出EXCEL的同学都有个非常不爽的体验,一个字,慢~~
对,就是导出时那种龟慢的速度,再加上还的购买office的授权许可,很够蛋疼的,现在就介绍一种快速导出EXCEL的方法
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
N是项目的.NET版本,是由Tony Qu()等大侠基于POI开发的,可以从下载到它的最新版本。它不使用Office COM组件(Microsoft.Office.Interop.XXX.dll),不需要安装Microsoft Office,支持Office 97-2003和Office2007的文件格式,功能非常强大,关键是人家还是开源的(用了人家的东西,顺便给人做下广告)
至于和office excel导出对比我就不多测试了,给个链接
现在就先介绍下在AX2009中使用NPOI导出office excel97-2003的文件格式
1.下载NPOI的动态链接库DLL文件(有点废话)
2.复制NPOI.DLL和NPOI.XML到AX客户端的安装目录BIN下,打开AX,添加NPOI.DLL的引用(导出97-2003格式只需要添加这个文件的引用就可以了)
3.结束了,可以开始使用了,简单吧,1分钟内可以安装完成
下面给个使用NPOI导出EXCEL的例子,我是使用MS的演示数据进行导出的,导出数据192行,175列,导出耗时3秒
AX的其他版本因没有测试环境,暂时没有测试
1 static void NPOI_ExportExcel2003(Args _args) 2 { 3 System.IO.FileStream file; 4 NPOI.HSSF.UserModel.HSSFWorkbook workBook= new NPOI.HSSF.UserModel.HSSFWorkbook(); 5 NPOI.SS.UserModel.ISheet sheet=workBook.CreateSheet("NPOISheet"); 6 NPOI.SS.UserModel.IRow row; 7 NPOI.SS.UserModel.ICell cell; 8 InventTable inventTable; 9 SysDictTable dictTable = new SysDictTable(inventTable.TableId);10 SysDictField dictField;11 FieldId fieldId;12 int i,j,k,t;13 str fieldValue;14 Types a;15 ;16 t=timenow();17 while select inventTable18 {19 row=sheet.CreateRow(i);20 for(j=1;j