我想从我的 ASP.NET 应用程序生成一个 word 文档。目前,我们显示一个“议程列表”,其中包含议程信息和所有项目/主题。这个页面需要有word打开的能力。议程页面不是静态的,它是从 SQL Server 中提取的议程项目的动态列表。
关于最佳解决方案的任何建议?我正在寻找一个快速的解决方案,而 OpenXML 似乎有点太耗时了。我愿意购买第三方工具。
谢谢!
我想从我的 ASP.NET 应用程序生成一个 word 文档。目前,我们显示一个“议程列表”,其中包含议程信息和所有项目/主题。这个页面需要有word打开的能力。议程页面不是静态的,它是从 SQL Server 中提取的议程项目的动态列表。
关于最佳解决方案的任何建议?我正在寻找一个快速的解决方案,而 OpenXML 似乎有点太耗时了。我愿意购买第三方工具。
谢谢!
使用 Office OpenXML SDK。对于更高版本的 Office(2007 及更高版本),这是标准。其他答案中提到了其他方法,但 OpenXML 将为您提供对输出的最大程度的控制。
以下是一些帮助您入门的文档:http: //msdn.microsoft.com/en-us/office/bb265236.aspx
你可以
让页面自己生成文档(如RTF格式)
将 Word 模板另存为 XML 并在填写内容的位置添加您自己的占位符(我知道您说过这很耗时,如果您对模板进行大量更新,这是真的)
使用像 Aspose ( http://www.aspose.com ) 这样的第 3 方工具,它对我来说效果很好,因为它确实节省了大量时间来通过 C# 中的对象处理文档。
我以前使用过三种方法:
您不需要任何第三方控件来创建 Word 文档。从 2007 年起,Word 可以将 html 作为 word 文档读取。您只需保存任何带有“ .doc ”扩展名的网页,Word 就会对其进行分类。
只需使用您想要的任何格式创建您的网页,然后使用 .doc 扩展名保存它。
我曾经HttpWebRequest
将 Url(带有参数)调用到我的页面,然后使用WebResponse
并将Stream
我的页面放入缓冲区,然后StreamReader
将StreamWriter
其保存到实际文档中。然后我有了自己的自定义函数来下载文件。
如果有人想要我的代码,请告诉我
您还可以尝试我们的第 3 方GemBox.Document库。
这是一个示例 C# 代码,如何以编程方式生成模板 Word (DOCX) 文档并使用邮件合并将数据导入其中:
var document = new DocumentModel();
document.Sections.Add(
new Section(document,
new Paragraph(document, "Agenda List:"),
new Paragraph(document,
new Field(document, FieldType.MergeField, "RangeStart:Agendas"),
new Field(document, FieldType.MergeField, "Subject") { CharacterFormat = { Bold = true } },
new SpecialCharacter(document, SpecialCharacterType.LineBreak),
new SpecialCharacter(document, SpecialCharacterType.Tab),
new Field(document, FieldType.MergeField, "Description")),
new Paragraph(document,
new Field(document, FieldType.MergeField, "RangeEnd:Agendas"))));
var agendas = new object[]
{
new { Subject = "First agenda subject", Description = "First agenda description." },
new { Subject = "Second agenda subject", Description = "Second agenda description." }
};
document.MailMerge.Execute(agendas, "Agendas");
document.Save("Agendas.docx");
您还可以轻松地将 Word 文档保存到 ASP.NET响应流。
我可以建议您尝试我们的Elerium Word .Net Writer组件以从 ASP.NET 页面生成 Word 文档。有一个带有源代码的演示,展示了如何使用动态数据表创建新的 Word 文档:
http://eleriumsoft.com/Word_NET/WordWriter/Demo.aspx
免责声明:我是 Elerium Software 的开发人员。