【问题标题】:How to preview merge field information?如何预览合并字段信息?
【发布时间】:2022-01-13 06:30:12
【问题描述】:

我有一个代码可以打开一个 word 文档,读取一个 excel 文件作为邮件合并字段的数据源,然后保存该文档。

问题:我希望合并字段中的文本显示(并保存)为“预览”。 (例如,该字段显示其值让我们说“狗”而不是其字段标题“动物”)。在 Word 应用程序中,我只需单击“预览结果”按钮。

通过录制宏,我发现这可以在 Visual Basic 中通过 ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle 行解决 虽然我还没有设法在 C# 代码中使用它。

我是编码和这个论坛的新手,所以如果我能提供更多信息,请告诉我。

using System;
using System.Windows.Forms;
using System.IO;
using System.Reflection;
using Word = Microsoft.Office.Interop.Word;
using System.Runtime.InteropServices;
using Microsoft.Office.Core;

namespace word
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        
        private void CreateWordDocument(object wordFilename, object excelSource)
        {
            Word.Application wordApp = new Word.Application();
            object missing = Missing.Value;
            Word.Document myWordDoc = null;

            object readOnly = false;
            object isVisible = false;
            wordApp.Visible = true;

            myWordDoc = wordApp.Documents.Open(ref wordFilename, ref missing, ref readOnly,
                                    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);
            myWordDoc.Activate();

            myWordDoc.MailMerge.MainDocumentType = 
            Word.WdMailMergeMainDocType.wdNotAMergeDocument; 
            myWordDoc.MailMerge.OpenDataSource(Name: excelSource, Format: ref missing,  
            SQLStatement: "SELECT*FROM`Data$`");

            //Any code for previewing
            //VB-code: ActiveDocument.MailMerge.ViewMailMergeFieldCodes = wdToggle

            myWordDoc.SaveAs2(ref wordFilename, ref missing, ref missing, ref missing,
                            ref missing, ref missing, ref missing,
                            ref missing, ref missing, ref missing,
                           ref mailmerge, ref missing, ref missing,
                           ref missing, ref missing, ref missing,
                           ref missing);

            myWordDoc.Close();
            wordApp.Quit();
        }
    }

【问题讨论】:

    标签: c# properties office-interop word


    【解决方案1】:

    要使用的属性是:

    myWordDoc.ActiveWindow.View.MailMergeDataView = true;
    

    在这里阅读更多: https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.word.view.mailmergedataview?view=word-pia

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-14
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多