【问题标题】:Find and replace text in .docx file without opening the file无需打开文件即可查找和替换 .docx 文件中的文本
【发布时间】:2016-12-17 04:43:02
【问题描述】:

我有一个模板 .docx 文件,我必须在其中替换占位符。我使用c# word interop find and replace everything 中的代码替换了我的word 文件中的名称。效果很好。

object fileName = GetFilePath();
Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application { Visible = true };
Microsoft.Office.Interop.Word.Document aDoc = wordApp.Documents.Open(fileName, ReadOnly: false, Visible: true);

aDoc.Activate();

FindAndReplace(wordApp, "firstname", "Max");

aDoc.Save();

这个实现确实打开了 word 文件。 我的问题是,是否有任何方法可以在不打开文件的情况下替换文本?

【问题讨论】:

  • 当你说“不打开文件”时,你的意思是根本不打开文件,还是只是不想让用户看到word文件已经打开? (即它不应该出现在任务栏等中)
  • @Bassie 我不希望用户看到 word 文件已被打开,因为 Andrejs Mivreniks 解释说没有打开它就没有办法。
  • 我添加了我自己的答案是你想要什么?
  • @Bassie 我没有时间检查你的答案。我会检查,如果正确,会尽快接受。新年快乐!

标签: c# replace ms-word


【解决方案1】:

要部分更改您确实需要先打开它的任何文件,除了每次使用存储在其他地方(例如应用程序内存中)的内容完全重写它之外,别无他法。

【讨论】:

    【解决方案2】:

    如果您只是想隐藏它对用户开放的事实,只需更改此参数:

    Visible: false
    

    文件仍会打开,但不会显示窗口。

    请注意,这仍然会像正常打开文件时一样影响文件(其他用户可能无法编辑它等)。

    【讨论】:

      猜你喜欢
      • 2013-05-27
      • 1970-01-01
      • 2020-07-29
      • 1970-01-01
      • 2014-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多