18

我计划在网络服务器上动态生成一个 Word 文档。有没有在c#中这样做的好方法?我知道我可以编写 Word 来执行此操作,但我更喜欢另一种选择。

4

8 回答 8

19

我过去曾在一家真正想要生成 Word 文档的公司工作,最后他们对具有“.doc”扩展名的 RTF 文档非常满意。Word 可以毫无问题地识别和打开它们。

RTF 文档是使用iText.net(免费的 .net 库)生成的,API 非常易于使用,性能非常好,您不需要机器上的文字,还可以扩展到生成 PDF、HTML 和未来的文本文档只需很少的努力。四年后,我创建的解决方案仍然存在,所以这是对 iText.net 有利的一点证明。

看起来iText 官方页面表明iText Sharp是目前最好的 .Net 选择,所以这是另一种选择

于 2008-11-29T00:49:24.387 回答
9

您最好生成一个 rtf 文件,该文件将知道如何打开。

于 2008-11-29T00:15:39.040 回答
8

如果要生成 Office 2007 文档,请查看 Open XML File Formats,它们是简单的压缩 XML 文件,请查看以下链接:

编辑:检查这个项目,可以作为一个很好的起点:

看起来非常简单和可定制,看看这个代码片段:

Paragraph p = new Paragraph();
p.Runs.Add(new Run("Text can have multiple format styles, they can be "));
p.Runs.Add(new Run("bold and italic", 
        TextFormats.Format.Bold | TextFormats.Format.Italic));
doc.Paragraphs.Add(p);
于 2008-11-29T00:21:38.357 回答
6

Word 会很高兴地打开带有 .doc 扩展名的 HTML。如果包含内部样式表,则可以将其完全格式化。之前有一篇关于这个问题的帖子:

在 C# 中导出到 Word 文档

于 2008-11-29T00:25:02.843 回答
6

如果没有 Word 本身,创建旧的 .DOC 文件(Word 2007 之前的版本)几乎是不可能的。格式太复杂了。微软已经发布了格式说明,但这足以让一个成年程序员落泪。这也是有原因的(历史上的),但这并不能让事情变得更好。

新的 .DOCX 会更容易,虽然还是有点麻烦。但是,根据您所针对的 Word 版本,还有一些其他选项。

一方面,有经典的 .RTF。该格式仍然非常复杂,但有据可查,并且在许多应用程序和平台上都有强大的支持。您可能会在模板文件中使用一些字符串替换来使事情变得更容易(它是非二进制的)。

然后是“旧的”Word XML 文件。我认为他们从 Word XP 开始工作。有点像 .DOCX 的前身。我用过,还不错。而且文档还不错。

最后,我会选择的简单方法是制作一个简单的 HTML。从 2000 版开始,Word 可以很好地加载 HTML 文件。以最简单的方式,只需将 HTML 文件的扩展名更改为 .DOC 即可。您还可以添加一些特定于单词的标签和注释,使其在 Word 中看起来更好。使用 Word 的另存为...HTML 选项来查看它们是什么。

于 2008-11-29T00:35:54.163 回答
1

有第三方图书馆可以完成这项工作。

例如,做一个快速的 google 想出了这个

我没有尝试过,所以我不能给你具体的建议,我害怕!

让我们知道您的身体情况如何...

于 2008-11-29T00:17:00.753 回答
1

在 Office 2007 中,Microsoft 引入了一种称为Microsoft Open Office XML 格式(.docx) 的新文件格式。此格式与旧版本的 Microsoft Word 不兼容。由于这是 XML,您无需安装 Word 即可创建或阅读。

于 2008-11-29T00:34:02.200 回答
0

这是基于自定义模板生成文档的组件。文档是从共享点列表生成的......因此数据会从列表项中动态提取到文档中:http: //store.sharemuch.com/products/generate-word-documents-from-sharepoint-list

希望有帮助,

雅罗斯拉夫·彭萨斯基博客:www.sharemuch.com

于 2009-02-02T03:53:58.423 回答