目前我们正在使用office interop从office 2003(word,excel& powerpoint)中的模板生成文档。这似乎是相当不赞成的(见office-interop-with-64bit-windows-in-asp-net),虽然它工作正常但我会更乐意使用支持的解决方案。
有什么非hacky方法可以做到这一点?要求是
我不确定有更好的方法。有吗?
答案 0 :(得分:4)
我刚刚发布这个作为另一个关于自动化Office的问题的答案,但我认为这也是对这个问题的合适回应(特别是因为您正在寻找免费或低成本的解决方案)。
我通过Web服务中的互操作使用Microsoft Excel,Word和PowerPoint将Office文档打印为PDF格式,因此无法解决问题(性能不佳,挂起进程,崩溃进程等)。我也遇到过我怀疑是因为看不见的对话框(可能是文件已损坏,建议只读,文件受密码保护等等)。
我知道有tools可用,不使用Office,但它们非常昂贵。我的解决方案是切换到自动化OpenOffice。 OpenOffice看起来要稳定得多,而且我已经抛弃了悬挂流程等等。
所以,虽然我想我说“不要自动化Microsoft Office”,但我并不是说你完全放弃了自动化;只是因为我已经比使用Microsoft Office更加成功地实现了OpenOffice的自动化。
答案 1 :(得分:1)
Aspose在.NET和Java中有许多用于生成Word,Excel和Powerpoint文档的组件
答案 2 :(得分:1)
看看http://npoi.codeplex.com/ 我用它来创建excel文档。支持ppt和word。
答案 3 :(得分:1)
Windward Reports完全符合您的要求(免责声明,我是Windward的首席技术官)。使用Windward,您可以在Word,Excel或PowerPoint中设计文档,然后我们的引擎将该模板与数据合并以创建最终文档。该引擎在Java和.NET中可用,并且 NOT 在服务器上使用Office,因此它非常快,并且没有使用互操作的问题。
答案 4 :(得分:0)
如果您有SQL Server,可以查看SQL Server Reporting Services
答案 5 :(得分:0)
您应该查看Aspose中提供的产品。有许多不同的文件格式组件,允许您创建和操作PDF和Microsoft Office文档,而无需在服务器上安装Office:
Software Artisans有一些类似的组件可以读写Word和Excel文档:
答案 6 :(得分:0)
SpreadsheetGear for .NET可以处理Excel文件生成。我们专注于电子表格,因此我们没有生成Word或PowerPoint。
您可以查看ASP.NET示例here并下载免费试用版here。
免责声明:我拥有SpreadsheetGear LLC
答案 7 :(得分:0)
我们完成此操作的一种方法是创建文档模板,并将其另存为word,excel或ppt文档,但文档保留在人类可读文本中。所以对于Word和Excel保存为mht。
然后你可以在模板中读取一个字符串,并使用旧的老式字符串操作函数处理它(替换占位符文本,添加行,无论你需要做什么)然后将字符串保存为.doc,.xls或.ppt(曾经程序创建它)文件,它应该作为该应用程序中的文档正确打开,所有格式都保持不变。
一个提示,您必须在Word中保存后在文本编辑器中检查模板。 Word将不加选择地添加换行符,以便它可以换行占位符或在其中放置其他格式,您可能需要清理它们。
答案 8 :(得分:0)
看看OWC(办公室网页组件),这些是为您的目标而设计的!
我不知道他们是否可以使用模板,因为它已经使用了它们,但我们曾经用它们生成电子表格,然后二进制将它们写入响应流以在浏览器中显示它们。
我不确定他们是否会完全符合您的要求,但至少值得考虑一下。