我打算动态地在网络服务器上生成Word文档。在c#中有这样做的好方法吗?我知道我可以编写Word来执行此操作但我更喜欢其他选项。
答案 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。如果包含内部样式表,则可以将其完全格式化。之前有关于这个主题的帖子:
答案 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)
答案 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