使用从 Windows 表单申请中获取的输入填写 word 文档
Fill a word document with inputs taken from Windows Form Application
我需要根据 Windows 表格申请中的输入填写银行账户表格 Word 文档。我已经在网上搜索了它,发现了可以用来编辑 Word 文档的 Microsoft.Office.Interop.Word
。但是我不确定如何将文本框放入文档中并放置信息。
我附上表格的图片。请给我任何关于它的suggestions/help。
我的方法是创建一个 Word 文档,每个框中都有一些自定义文本。对于父亲的名字框,我将输入 {FathersName}。然后,当我使用 Word Interop 打开文档时,我对每个字段执行搜索和替换,以将其替换为该框中我想要的数据。如果一个盒子应该是空的,我用“”替换它。要获取替换命令的语法,请在 Word 中记录一个替换内容的宏。然后,编辑宏。
有多种方法。使用哪种在一定程度上取决于用户在保存/打印文档之前可能想要/需要/允许执行什么样的附加编辑。以下是我想到的可能性列表:
- 表单字段(应保护文档免受更改)
- 内容控件(也可以被保护,但也允许格式化输入)
- 书签(最简单的"interop")
- "Find/Replace"(Russel 的建议 - 不是我个人的喜好)
- 邮件合并(虽然较少直接输入到表单中)
如果不应有用户交互,您还应该考虑使用 Open XML 文件格式生成文件,尤其是在涉及服务器环境的情况下。
Follow-up 来自评论:使用 Document.SelectContentControlsByTitle
and/or .SelectContentControlsByTag
方法访问内容控件。这些 return 具有指定标题/标签 属性 的内容控件数组作为参数传递。与书签不同,多个内容控件可以具有相同的 title/tag。 (这就是为什么我说书签是"simpler"。)
内容控件还有一个 ID 属性(long-ish 数字),可以作为 字符串 作为内容控件的索引参数传递 collection。当 Content 控件插入到文档中时,Word 会分配 ID,该 ID 为 read-only。假设您创建了文档,因此可以知道每个内容控件的 ID 值,您可以使用它来代替上述方法。 contentControl = Document.ContentControls("2087486648")
我需要根据 Windows 表格申请中的输入填写银行账户表格 Word 文档。我已经在网上搜索了它,发现了可以用来编辑 Word 文档的 Microsoft.Office.Interop.Word
。但是我不确定如何将文本框放入文档中并放置信息。
我附上表格的图片。请给我任何关于它的suggestions/help。
我的方法是创建一个 Word 文档,每个框中都有一些自定义文本。对于父亲的名字框,我将输入 {FathersName}。然后,当我使用 Word Interop 打开文档时,我对每个字段执行搜索和替换,以将其替换为该框中我想要的数据。如果一个盒子应该是空的,我用“”替换它。要获取替换命令的语法,请在 Word 中记录一个替换内容的宏。然后,编辑宏。
有多种方法。使用哪种在一定程度上取决于用户在保存/打印文档之前可能想要/需要/允许执行什么样的附加编辑。以下是我想到的可能性列表:
- 表单字段(应保护文档免受更改)
- 内容控件(也可以被保护,但也允许格式化输入)
- 书签(最简单的"interop")
- "Find/Replace"(Russel 的建议 - 不是我个人的喜好)
- 邮件合并(虽然较少直接输入到表单中)
如果不应有用户交互,您还应该考虑使用 Open XML 文件格式生成文件,尤其是在涉及服务器环境的情况下。
Follow-up 来自评论:使用 Document.SelectContentControlsByTitle
and/or .SelectContentControlsByTag
方法访问内容控件。这些 return 具有指定标题/标签 属性 的内容控件数组作为参数传递。与书签不同,多个内容控件可以具有相同的 title/tag。 (这就是为什么我说书签是"simpler"。)
内容控件还有一个 ID 属性(long-ish 数字),可以作为 字符串 作为内容控件的索引参数传递 collection。当 Content 控件插入到文档中时,Word 会分配 ID,该 ID 为 read-only。假设您创建了文档,因此可以知道每个内容控件的 ID 值,您可以使用它来代替上述方法。 contentControl = Document.ContentControls("2087486648")