也满网络找过相关的文章,大体上都差不多的,都是引用Office类库
这样就要在服务器上安装Office类库,也会带来后续的 Office版本问题
我觉得作为服务器来说装上个Office组件有点怪怪的,要跟客户说明部署情况
由于做的都是Web上的项目,这么做有个问题,就是excel进程关不掉。网上也有解决类似问题的文章,可这个在web上是行不通的,因为在web上开启excel进程的是Iuser_computername帐户,由于是匿名帐户所以没有权限关闭打开的进程,是系统所限不是代码能解决的(这里可能引起争论,详细情况我在一楼说明)。
综合以上原因,我的解决方法是使用XSL转换生成Excel格式的XML,所以只支持OfficeXP以上版本
具体的做法我也就不copy上来了,都在下面的参考文章里面,写的很详细了
我只说一下这么做的优点:
只需先画好最终想要的形式(包括样式,计算列等等)然后导出就可以了
生成的模版包含样式,不用费心在关注边框、字体等上面了
最主要的是这种方式相当于数据绑定,把数据和显示区分开来,和使用datagrid类似
当然也有缺点,生成的模版不能包含:
- 图表
- OLE对象
- 绘图形状或自选图形
- VBA项目
- 组及分级显示
参考文章:
http://support.microsoft.com/kb/319180
http://support.microsoft.com/kb/288215