1 直接用reportview的localreport模式,
2服务端打开office文件,然后填充数据
3,利用javascript+Excel.Application启动客户端excel(可直接打印).
这三个方案都同时在用,然而 reportview功能还是比较有限(导出文件有些问题),而服务端打开office文件需要启动excek进程,太占用服务了吧.个人认为用excel做报表非常强大,用类似于模板语言来设置报表模板(如velocity,freemake),还是很好用的.
微软Open XML格式被批准成为国际标准,我们是否可以用Openxml来更好的实现报表呢.那么应该解决3个问题
1,不用启动office进程也能访问文档对象(而非xml,毕竟直接操作xml太复杂了),这样服务器占用资源的问题就解决了。
2,可以在web上直接打开报表,同时也可以用office打开,毕竟很多企业领导还是喜欢在web上直接打开报表,不需要打开office.
3,office 2000, office 2003能打开openxml文件.
对于第一点,可以到 http://www.codeplex.com/OpenXMLObjects/Wiki/View.aspx?title=Samples
下载源码.这是一个开源的 Open XML Objects ,
using
(WordProcessingMLDocument myDoc
=
WordProcessingMLDocument.Open( @" C:\myDoc.docx " ))
{
Paragraph paragraph = myDoc.Body.Paragraphs.New();
paragraph.AddText("Hello World!");
myDoc.Save();
}
WordProcessingMLDocument.Open( @" C:\myDoc.docx " ))
{
Paragraph paragraph = myDoc.Body.Paragraphs.New();
paragraph.AddText("Hello World!");
myDoc.Save();
}
第二点,今天早上发现一篇好文 SpreadsheetML documents in a browser ,在web上打开
openxml文件,cool
第三点 请查看 如何打开Office 2007文档 。
这三个问题,已经解决,不过如果有小程序能直接阅读opemxml文件(如pdf reader),而不用下载昂贵的office就更好了。