C# 读取单词输入字段?

C# 读取单词输入字段?,c#,asp.net,office-interop,C#,Asp.net,Office Interop,好的,我正在尝试制作一个包含输入字段的word文档。当用户完成并将文档发送到服务器时,我希望读取所有这些字段并跳过所有其他字段 我很难找到如何从我的应用程序中读取这些标签 示例模板可在此处找到: 我想要的是读取每个标记的文本并保存它 Microsoft.Office.Interop.Word.Application ap = new Microsoft.Office.Interop.Word.Application(); try {

好的,我正在尝试制作一个包含输入字段的word文档。当用户完成并将文档发送到服务器时,我希望读取所有这些字段并跳过所有其他字段

我很难找到如何从我的应用程序中读取这些标签

示例模板可在此处找到:

我想要的是读取每个标记的文本并保存它

Microsoft.Office.Interop.Word.Application ap = new Microsoft.Office.Interop.Word.Application();

        try
        {

            Document doc = ap.Documents.Open(txtFile.Text, ReadOnly: true, Visible: false);
            doc.Activate();


            //What to do here?


            ap.Documents.Close(SaveChanges: false, OriginalFormat: false, RouteDocument: false);

        }
        catch (Exception ex)
        {
            txtRes.Text += "Exception Caught: " + ex.Message + Environment.NewLine;
        }

MS在类似服务器的场景(如ASP.NET或Windows服务或类似场景)中不支持Office互操作,请参见

您需要使用一些库来实现您想要的:

  • (免费)
  • (商业)
编辑-根据评论:

请注意,以下内容仅适用于普通应用程序(而不是ASP.NET等)

您基本上需要浏览
文档的
字段
集合
(在您的代码中,即
文档
)。。。一些有用的链接是:

这可能会有帮助:

using Word = Microsoft.Office.Interop.Word;
    ...    

        Word.Application word = new Word.ApplicationClass();
        object miss = System.Reflection.Missing.Value;
        object path = @"D:\test.doc";
        object readOnly = false;
        Word.Document document = word.Documents.Open(ref path, ref miss, ref readOnly, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss, ref miss);

        foreach (Word.FormField ff in document.FormFields)
        {
          MessageBox.Show(ff.Name." - ".ff.Result);
        }

        document.Close(ref miss, ref miss, ref miss);
        word.Quit();

您的应用程序是ASP.NET还是Windows服务或类似应用程序?好的-请参阅下面我的答案…不受支持,但仍然可行。假设我只想在客户端应用程序上使用它,“可行”意味着您将不得不规避很多问题,包括自Vista以来收紧的安全措施!请阅读第一个链接!好吧,那就别把它当作服务器应用程序,请(如果你有能力的话)提供一个答案,说明如何通过客户端应用程序做到这一点。。查看我的示例代码,我询问了一些有用的链接,但看不到它显示了如何像我的模板那样仅获取输入字段的任何地方。