ASP.NET Excel导出(动态生成)解决方案
(一)、服务器端的excel组件来生成目标Excel
即在后台调用excel组件,来读取模板,填写模板的。就是后台启动Excel来处理的,在进程管理器里可以查看到它的进程。
优点:Excel处理功能丰富,多样,可以完成一切的Excel文件处理。
缺点:服务器端要装Excel软件,处理效率低,容易产生进程无法回收,服务器容易崩溃。
(二)、利用MSOWC组件,即微软的 office web component
优点:服务器无需安装office软件,功能强大,简单易用。
缺点:不能直接读取excel,excel转化xml后读取流造成一些个性化效果丢失;客户端要安装owc,可能涉及版权的问题;读写速度很慢。
(三)、开源组件 MyXls
优点:不依赖Microsoft组件,在内存中操作excel,读写速度快。
缺点:无法读取模板,只能生成新的excel,格式不好控制。
(四)、操作Excel的导出XML文件
XML中添加新行元素,更新行数信息和验证信息
优点:读取模板,通过文件流读写XML,速度最快。
缺点:转化为XML可能丢失一些个性效果;只适合有新行插入的工作簿,对没有新行插入,仅仅填写单元格的工作簿支持不好。
(五)、ado.net
缺点: 容易出错,而且操作也不灵活,插入等经常遇到问题,而且不能删除行。比较适用于结构单一的Excel表。