小智 15
我将发送两个示例来解决您的自动化问题.第一个是使用MailMerge,第二个是使用书签.
word文件看起来像这样:
使用MailMerge(插入 - >快速部件 - >字段 - >邮件合并 - >合并字段)名字:«firstName»姓氏:«lastName»
=======
使用书签(插入 - >书签)名字:( < - 书签在这里,它不可见)姓氏:
代码如下:
使用书签
    Open("D:/Doc1.doc");
    if (oDoc.Bookmarks.Exists("bkmFirstName"))
    {
        object oBookMark = "bkmFirstName";
        oDoc.Bookmarks.get_Item(ref oBookMark).Range.Text = textBox1.Text;
    }
    if (oDoc.Bookmarks.Exists("bkmLastName"))
    {
        object oBookMark = "bkmLastName";
        oDoc.Bookmarks.get_Item(ref oBookMark).Range.Text = textBox2.Text;
    }
    SaveAs("D:/Test/Doc2.doc"); Quit();
    MessageBox.Show("The file is successfully saved!");
使用MailMerge
    Open("D:/Doc1.doc");
    foreach (Field myMergeField in oDoc.Fields)
    {
        //iTotalFields++;
        Range rngFieldCode = myMergeField.Code;
        String fieldText = rngFieldCode.Text;
        // GET only MAILMERGE fields
        if (fieldText.StartsWith(" MERGEFIELD"))
        {
            Int32 endMerge = fieldText.IndexOf("\\");
            Int32 fieldNameLength = fieldText.Length - endMerge;
            String fieldName = fieldText.Substring(11, endMerge - 11);
            fieldName = fieldName.Trim();
            if (fieldName == "firstName")
            {
                myMergeField.Select();
                oWordApplic.Selection.TypeText("This Text Replaces the Field in the Template");
            }
        }
    }
    SaveAs("D:/Test/Doc2.doc"); Quit();
    MessageBox.Show("The file is successfully saved!");
我也使用了一些辅助方法.
    ApplicationClass oWordApplic = new Microsoft.Office.Interop.Word.ApplicationClass();
    private Microsoft.Office.Interop.Word.Document oDoc = new Document();
    public void Open(string strFileName)
    {
        object fileName = strFileName;
        object readOnly = false;
        object isVisible = true;
        object missing = System.Reflection.Missing.Value;
        oDoc = oWordApplic.Documents.Open(ref fileName, ref missing, ref readOnly,
        ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
        ref missing, ref missing, ref isVisible, ref missing, ref missing, ref missing, ref missing);
        oDoc.Activate();
    }
    public void SaveAs(string strFileName)
    {
        object missing = System.Reflection.Missing.Value;
        object fileName = strFileName;
        oDoc.SaveAs(ref fileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
        ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);
    }
    public void Quit()
    {
        object missing = System.Reflection.Missing.Value;
        oWordApplic.Application.Quit(ref missing, ref missing, ref missing);
    }
我希望这个实现能给出解决问题的一些想法.