【发布时间】: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