gpt4 book ai didi

c# - 如何从模板以编程方式创建 word 文档

转载 作者:可可西里 更新时间:2023-11-01 02:59:21 27 4
gpt4 key购买 nike

我正在尝试在 Microsoft Office Word 中创建大约 600 个报告。这些文档填充了来自数据库的数据和在本地驱动器上找到的图像。我想通了,我可以在 visual studio 2010 中创建一个 Word 模板项目,并对模板进行编程,这样当您输入单个值(id-number)时,它会自动填充整个文档。

我非常有信心这是可能的。唯一的问题是。如何循环遍历数据库中的所有条目,根据模板打开一个新文档并设置 id 值?

for(int i = 0; i < idnumbers.Count(); i++)
{
Word.Application app = new Word.Application();
Word.Document doc = app.Documents.Add(@"C:\..\WordGenerator\bin\Debug\WordTemplate.dotx");
//input the id-number below: HOW??

doc.SaveAs(FileName: @"c:\temp\test.docx");
}

该应用程序应该只运行一次,生成报告,而且它不必很快。它必须易于开发。

这里的问题是,在 Word 项目之外似乎无法访问 DocumentBase 对象。替代品 Microsoft.Office.Interop.Word.Document 没有像 SelectContentControlsByTitle 这样的功能,可以让我找到并设置我的 ContentControls。而这正是我需要做的..


编辑:这就是我的代码现在将文本插入到我的字段中的样子:

Word.Application app = new Word.Application();

Word.Document doc = app.Documents.Add(@"C:\..\test.dotx");

foreach (Word.ContentControl cc in doc.SelectContentControlsByTitle("MyCCTitle"))
{
cc.Range.Text += "1234";
}

doc.SaveAs(FileName: @"c:\temp\test.docx");

然后我的 BeforeSave 模板上的事件处理程序根据 MyCCTitle 标题对象中的文本填写文档。

最佳答案

不要使用办公自动化。Office 自动化在后台打开一个 office 实例并对其执行操作。打开 office 实例 600 次似乎不是一件很有趣的事情。 (它永远不会在服务器端运行)

看看 Open XML。您可以在下面找到有关它的负载:

http://openxmldeveloper.org/

编辑:Openxmldeveloper 正在关闭。在 http://www.ericwhite.com/ 找到上面提到的所有来源相反。

关于c# - 如何从模板以编程方式创建 word 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4304238/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com