使用Windows窗体应用程序

时间:2016-02-13 05:15:01

标签: c# winforms ms-word office-interop

我需要从Windows表单应用程序的输入中填写银行帐户表单Word文档。我在网上搜索过它,发现可以用来编辑Word文档的Microsoft.Office.Interop.Word。但是我不确定如何将文本框放在文档中并放置信息。

我正在附上表格的图片。请给我任何建议/帮助。

enter image description here

2 个答案:

答案 0 :(得分:3)

我这样做的方法是创建一个Word文档,每个框中都有一些自定义文本。对于父亲的名字框,我会输入{FathersName}。然后,当我使用Word Interop打开文档时,我执行搜索并替换每个字段以将其替换为我在该框中所需的数据。如果一个盒子应该是空的,我用""替换它。要获取replace命令的语法,请在Word中记录一个替换某些内容的宏。然后,编辑宏。

答案 1 :(得分:3)

有各种方法。使用哪一个在某种程度上取决于在保存/打印文档之前用户可能想要/需要/允许执行什么样的附加编辑。以下列出了可能出现的可能性:

  1. 表单字段(应保护文档不受更改)
  2. 内容控件(也可以受到保护,但也允许格式化输入)
  3. 书签(最简单的“互操作”)
  4. “查找/替换”(罗素的建议 - 不是我个人的偏好)
  5. 邮件合并(虽然直接输入到表单中的次数较少)
  6. 如果不存在用户交互,您还应该考虑使用Open XML文件格式生成文件,尤其是涉及服务器环境时。

    评论后续跟踪:使用Document.SelectContentControlsByTitle和/或.SelectContentControlsByTag方法访问内容控件。它们返回一组内容控件,并将指定的Title / Tag属性作为参数传递。与书签不同,多个内容控件可以具有相同的标题/标签。 (这就是为什么我说书签“更简单”。)

    内容控件还有一个ID属性(long-ish数字),可以作为字符串作为ContentControls集合的Index参数传递。当Content控件插入到文档中时,ID由Word分配,并且是只读的。假设您创建了文档,因此可以知道每个内容控件的ID值,您可以使用它而不是上述方法。 contentControl = Document.ContentControls(“2087486648”)