0

我有一个 Word 插件,它以 OpenXML 格式写入和读取 Word 文档 - 即 .docx。

但是,为了让我可以轻松识别“我的”文档,而不是普通的 Word .docx 文件,我使用了另一个扩展名,称之为 .myx(或 .mym 用于启用宏的文档)。

这一切都在 Word 2007 和 Word 2010 中运行良好,我认为它可以在 Word 2003 中运行(安装了兼容包)。

但是 Word 2003 在打开带有 .docx 扩展名的文档时,不会打开 .myx 文档,除非我将其重命名为扩展名为 .docx。

当我尝试使用 VBA 时,我使用了一些看起来很明显的 WdOpenFormat 枚举值,但似乎没有任何帮助。

我真的必须将扩展名更改为 .docx 才能让 Word 2003 打开它吗?

4

1 回答 1

0

答案是 Office 2007 的兼容包只是 Word 的另一个“文本转换器”,而 .docx 和 .docm 扩展名似乎是 Word 用来调用该文本转换器的东西。

但是,这篇文章this article处理在 Word 2003 环境中另存为 .docx 的问题,它提供了有关如何打开文档的提示。使用该链接中定义的宏作为指南,以下是您如何找到正确的“OpenFormat”值以打开文档的本质(在 C# 中):

using MSWord = Microsoft.Office.Interop.Word;
...
private object GetOpenFormat(bool macroEnabled) {
  object result = MSWord.WdOpenFormat.wdOpenFormatAuto; /* default in case can't find the real value */
  string formatName = (macroEnabled? "Word 2007 Macro-enabled Document": "Word 2007 Document");
  foreach(MSWord.FileConverter converter in _msWordInstance.FileConverters) {
    if(string.Compare(converter.FormatName, formatName, true) == 0) {
      if(converter.CanOpen) {
        result = converter.OpenFormat;
        break;
      }
    }
  }
  return result;
}
于 2012-09-04T12:29:02.670 回答