我有一个项目,我想以MS Word格式生成报告导出.该报告将包括图像/图形,表格和文本.做这个的最好方式是什么?第三方工具?你有什么经历?
答案将取决于应用程序是在服务器上运行还是在客户端计算机上运行.如果您在服务器上运行,那么您将需要使用基于XML的办公室生成格式之一,因为在服务器上使用Office Automation时会出现问题.
但是,如果您正在使用客户端计算机,则可以选择使用Office自动化或使用Office Open XML格式(请参阅下面的链接),Microsoft Office 2000以及本机或通过Service Pack支持这些格式.但是,回过头来看,您可能无法嵌入您想要显示的某些图形或图像.
处理事情的最佳方式将完全取决于您需要投入多少时间进行开发.如果您选择Office Automation的路线,可以通过Google找到相当多的优秀教程,并且相当简单易学.但是,Open Office XML格式是相当新的,因此您可能会发现学习曲线要高一些.
Office Open XML信息
Office Open XML - http://en.wikipedia.org/wiki/Office_Open_XML
OpenXML Developer - http://openxmldeveloper.org/default.aspx
Office(2007)Open XML文件格式简介 - http://msdn.microsoft.com/en-us/library/aa338205.aspx
DocX免费库,用于创建DocX文档,积极开发,使用非常简单直观.由于CodePlex即将死亡,项目已转移到github.
我花了大约一周的时间来熟悉Office Open XML.我们有一个数据库应用程序,用于存储我们要在Microsoft Word中报告的调查数据.您实际上可以在C#中从头开始创建Word 2007(docx)文件.Open XML SDK版本2包含一个名为Document Reflector的酷应用程序,它实际上将提供C#代码以完全重新创建Word文档.您可以使用部分或全部代码,并替换您想要动态更改的位.SDK附带的帮助文件也有一些很好的代码示例.
服务器上不需要Office Interop或任何其他Office软件 - 新格式是100%XML.
您是否考虑过使用.RTF作为替代方案?
它支持嵌入图像和表格以及文本,默认情况下使用Microsoft Word打开,同时它的功能集更受限制(计算出任何高级格式),用于外观和感觉,并且像Word文档一样打开它并不遥远.
您的最终用户可能不会注意到.
我发现Aspose Words是最好的,因为不是每个人都可以打开Office Open XML/*.docx格式文件,Word互操作和Word自动化可能是错误的.Aspose Words支持Word 97以上的大多数文档文件类型.
这是一个付费组件,但有很大的支持.另一种已经建议的替代方案是RTF.
要在.NET中使用Office Automation生成Word文档,特别是在C#或VB.NET中:
将Microsoft.Office.Interop.Word程序集引用添加到项目中.路径是\ Visual Studio Tools for Office\PIA\Office11\Microsoft.Office.Interop.Word.dll.
按照您可以在此处找到的Microsoft代码示例:http://support.microsoft.com/kb/316384/en-us.