我有一个项目,希望生成一个MS Word格式的报告导出。该报告将包括图片/图表、表格和文本。最好的方法是什么?需要使用第三方工具吗?你有什么经验?
您是否考虑过使用.RTF作为替代方案?
它支持嵌入图像、表格和文本,使用Microsoft Word 默认打开,虽然其功能集有限(不包括任何高级格式),但对于看起来和感觉像Word文档以及可以打开的东西来说,它并不差太多。您的最终用户可能不会注意到。
我发现Aspose Words是最好的,因为不是每个人都能打开Office Open XML/*.docx格式文件,而Word互操作和Word自动化可能会出现故障。Aspose Words支持从Word 97开始的大多数文档文件类型。
这是一个付费组件,但有很好的支持。另一个已经提出的选择是RTF。
使用.NET框架内的Office自动化功能生成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。
Schmidty,如果您想在Web服务器上生成Word文档,则需要为每个客户端(而不仅仅是Web服务器)购买许可证。请参阅Rob发布的第一个link中的此部分:
“除了技术问题外,您还必须考虑许可问题。当前的许可指南防止Office应用程序被用于服务器以服务客户端请求,除非这些客户端本身拥有经过许可的Office副本。使用服务器端自动化向未经许可的工作站提供Office功能不受最终用户许可协议(EULA)的覆盖。”
如果您符合许可要求,我认为您需要使用COM互操作性 - 具体来说,是Office XP Primary Interop Assemblies。
我曾经遇到过这个问题,并为此创建了一个小型库。它在几个项目中被使用,然后我决定发布它。它是免费的,非常简单,但我相信它一定会对你有帮助。调用Office Open XML库:http://invoke.co.nz/products/docx.aspx。