有没有办法动态生成word文档而无需在机器上有文字

时间:2008-11-29 00:13:46

标签: c# ms-word document

我打算动态地在网络服务器上生成Word文档。在c#中有这样做的好方法吗?我知道我可以编写Word来执行此操作但我更喜欢其他选项。

8 个答案:

答案 0 :(得分:19)

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

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

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

答案 1 :(得分:9)

你最好生成一个rtf文件,哪个词会知道如何打开。

答案 2 :(得分: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);

答案 3 :(得分:6)

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

Export to Word Document in C#

答案 4 :(得分:6)

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

新的.DOCX会更容易,但仍然有点麻烦。但是,根据您要定位的Word版本,还有其他一些选项。

首先,有经典的.RTF。这种格式仍然相当复杂,但文档齐全,并且在许多应用程序和平台上都有很强的支持。并且您可以使用一些字符串替换到模板文件中以使事情变得更容易(它是非二进制的)。

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

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

答案 5 :(得分:1)

有第三方图书馆可以胜任这项工作。

例如,快速谷歌提出了this one

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

告诉我们您是如何继续...

答案 6 :(得分:1)

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

答案 7 :(得分:0)

以下是基于自定义模板生成文档的组件。这些文档是从sharepoint列表生成的......所以数据会从列表项中即时提取到文档中: http://store.sharemuch.com/products/generate-word-documents-from-sharepoint-list

希望有所帮助,

Yaroslav Pentsarskyy 博客:www.sharemuch.com