gpt4 book ai didi

c# - 使用 c# 和 Microsoft Word Interop 在 Word 中填写字段

转载 作者:可可西里 更新时间:2023-11-01 08:23:23 25 4
gpt4 key购买 nike

我尝试使用 C# 互操作程序集和以下代码在 Microsoft Word 中填写表单字段

string filename = @"N:\mehler\Vorlage2.dotx";

Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
Microsoft.Office.Interop.Word.Document doc = new Microsoft.Office.Interop.Word.Document();

doc = word.Documents.Open(filename);
doc.Activate();

foreach (Microsoft.Office.Interop.Word.FormField field in doc.FormFields)
{
switch (field.Name)
{
case "Text2":
field.Range.Text = "1";
break;

default:
break;
}
}

doc.SaveAs2(@"N:\mehler\Ausgefuellt.docx");
doc.Close();
word.Quit();
System.Diagnostics.Process.Start(@"N:\mehler\Ausgefuellt.docx");

Microsoft Word 无法打开文件 Ausgefuelt.docx 并显示一条消息,指出发生了未知错误。

我创建了一个简单的 Word 文档,其中包含一些未格式化的文本和 2 个文本表单字段

谁能告诉我哪里出了问题,或者我的源代码是否有错误

编辑:我设法指定了问题。我创建了一个仅包含一个文本表单域的文档。在 Word 2013 中,这是在主题“Formulare aus Vorversionen”下找到的(我将其翻译为“Formfields from former Versions”)如果我注释掉整个 foreach block 以便我只打开和保存文档,我会得到相同的结果。

如果我直接在 Word 中打开源文件就没有问题。我还尝试加载文档并使 Word 可见。结果看起来像一个没有加载文档的空 Word 实例。

最佳答案

你应该使用:

doc = Word.Documents.Add(filename);

代替:

doc = Word.Documents.Open(filename);

因此 Word 将使用模板创建文档文件,而不是打开模板本身。当事件文档是模板时,Word 的行为似乎有所不同。

关于c# - 使用 c# 和 Microsoft Word Interop 在 Word 中填写字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18533198/

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