1
49
答案将稍微取决于应用程序是在服务器上运行还是在客户机上运行。如果您在服务器上运行,那么您将希望使用基于XML的Office生成格式之一,因为当 using Office Automation on a server . 但是,如果您在客户机上工作,那么您可以选择 using Office Automation 或者使用OfficeOpenXML格式(请参阅下面的链接),该格式由MicrosoftOffice2000支持,可以是本机的,也可以是通过ServicePacks支持。不过,有一点可以追溯到这一点,那就是您可能无法嵌入您希望显示的某些图形或图像。 做事情的最佳方式将完全取决于你在开发上必须投入多少时间。如果你走上办公自动化的道路,你可以通过谷歌找到很多很好的教程,而且学习起来相当简单。但是,开放式OfficeXML格式是相当新的,因此您可能会发现学习曲线要高一些。 Office Open XML信息
|
2
17
DocX free library 为创建docx文档,积极开发,非常容易和直观的使用。自从codeplex快死了,项目已经转移到 github . |
3
14
我花了大约上周的时间来加速 Office Open XML . 我们有一个数据库应用程序,它存储了我们想要用Microsoft Word报告的调查数据。实际上,您可以在C_中从头开始创建Word 2007(docx)文件。OpenXMLSDK版本2包含一个很酷的应用程序,名为document reflector,它将提供C代码来完全重新创建一个Word文档。您可以使用部分或全部代码,并替换要在运行中更改的位。SDK附带的帮助文件也有一些很好的代码示例。 服务器上不需要Office Interop或任何其他Office软件-新格式是100%XML。 |
4
10
您是否考虑过使用.rtf作为备选方案? 它支持嵌入图像、表格和文本,默认情况下使用Microsoft Word打开,虽然它的功能集更为有限(计算出任何高级格式),但对于看起来、感觉和打开方式与Word文档类似的内容,它距离不远。 您的最终用户可能不会注意到。 |
5
10
我找到了 Aspose Words 最好不是每个人都能打开OfficeOpenXML/*.docx格式的文件,而单词interop和单词自动化可能有问题。aspose words支持Word 97以上的大多数文档文件类型。 它是一个付费组件,但有很大的支持。另一个已经提出的替代方案是RTF。 |
6
7
在.NET中,特别是在C或VB.NET中,使用Office自动化生成Word文档:
|
7
4
施密蒂,如果你想在网络服务器上生成Word文档,你需要每个文档都有一个许可证。 客户机 (不仅仅是Web服务器)。参见第一节 link Rob张贴: “除了技术问题,您还必须考虑许可问题。当前的许可准则禁止在服务器上使用Office应用程序来服务客户端请求,除非这些客户端本身拥有Office的许可副本。使用服务器端自动化为未经许可的工作站提供办公功能不在最终用户许可协议(EULA)范围之内。” 如果您满足许可要求,我认为您需要使用COM互操作-具体来说, Office XP Primary Interop Assemblies . |
8
3
签出vsto(Visual Studio Tools for Office)。创建一个单词模板,在其中插入一个XML数据岛,然后将其发送到客户机是相当简单的。当用户在Word中打开文档时,Word读取XML并将其转换为WordML并呈现它。您将要查看VSTO库的ServerDocument类。根据我的经验,不需要额外的许可证。 |
9
3
我在使用支持Doc和Docx格式的SyncFusion BackOffice Docio方面取得了很好的成功。 在以前的版本中,它不支持Word中的所有内容,但根据您的列表,我们使用表和文本作为邮件合并方法对其进行了测试,并且运行良好。 但不确定图像的导入。在他们的宣传页上 http://www.syncfusion.com/products/DocIO/Backoffice/features/default.aspx 它说
所以值得考虑。 正如其他人提到的,您可以构建一个RTF文档,有一些很好的RTF库可用于.NET http://www.codeproject.com/KB/string/nrtftree.aspx |
10
3
我面对这个问题,为此创建了一个小图书馆。它在几个项目中被使用,然后我决定发布它。它是免费的,非常简单,但我相信它会帮助你完成这项任务。调用Office Open XML库, http://invoke.co.nz/products/docx.aspx . |
11
3
我写了一篇 blog post series on Open XML WordprocessingML document generation . 我的方法是创建一个包含内容控件的模板文档,并在每个内容控件中编写一个XPath表达式,该表达式定义如何从包含驱动文档生成过程的数据的XML文档中检索内容。该代码是免费的,并且根据 Microsoft Reciprocal License (Ms-RL) . 在同一篇博文系列文章中,我还探讨了一种方法,即在内容控件中编写C代码。然后,文档生成过程处理模板文档,并生成生成所需文档的C程序。这种方法的一个优点是您可以使用 任何 数据源作为文档生成过程的数据源。该代码还根据Microsoft互惠许可证获得许可。 |
12
2
我现在做的就是这个。 如果文档不是很大,不包含图像等,那么我将它存储为一个RTF,其中包含合并字段,并简单地用内容替换它们,将结果作为RTF发送给用户。 对于较大的文档(包括图像和动态插入的图像),我再次将初始Word文档保存为包含合并域的单个网页*.mht文件。然后我做同样的事情。使用它,我可以轻松地用一些基本的HTML表标记呈现一个数据表,并用一个完整的表替换一个合并字段。 图像可以存储在服务器上,URL也可以嵌入到文档中。 有趣的是,新的Office2007文件格式实际上是zip文件-如果将扩展名重命名为.zip,则可以打开它们并查看其内容。这意味着您应该能够使用一个简单的c zip库来切换内容,如图像的输入和输出。 |
13
1
@DaleRagan:这对于Office2003 XML格式是有效的,但是这是不可移植的(比如,.doc或.docx文件)。 要读/写这些内容,您需要使用Word对象库ActiveX控件: |
14
1
@丹尼:事实上,本文描述了什么将成为Rob回答的OfficeOpenXML格式。我会更加注意我现在发布的链接,以确保不会过时。实际上我在wordml上做了一个搜索,当时它被称为wordml。 我相信OfficeOpenXML格式是最好的方式。 |
15
1
LibreOffice 还支持通过API进行无头交互。不幸的是,目前还没有关于此功能的太多信息。:( |
16
1
您还可以使用Word文档生成器。它可以用于客户端或服务器端部署。从项目说明:
抓住它: http://worddocgenerator.codeplex.com/ 下载SDK: http://www.microsoft.com/en-us/download/details.aspx?id=5124 |
17
0
另一种选择是 Windward Docgen (免责声明-我是创始人)。使用windward,您可以在Word中设计模板,包括图像、表格、图形、仪表和任何您想要的东西。可以在插入XML或SQL数据源数据的位置设置标记(包括foreach循环、导入等功能)。然后生成报告到docx、pdf、html等。 |
Emopusta · 从后端到前端的图像路径不工作 2 年前 |
Asdrubal Hernandez · Linq查询特定数组索引出错 2 年前 |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
Dansih · .Net核心自定义身份验证方案 2 年前 |
lolorekkk · 面板插入。NET WinForm 2 年前 |