我有一个Word加载项,它以OpenXML格式写入和读取Word文档,即.docx.
但是,为了让我可以很容易地将"我的"文档识别为普通的Word.docx文件,我使用了另一个扩展名,称之为.myx(或.mym,用于启用宏的文档)。
这一切在Word2007和Word2010中都能很好地工作,我认为它在Word2003(安装了兼容包)中也能工作。
但是Word 2003在打开扩展名为.docx的文档时,不会打开.myx文档,除非我将其重命名为.docx.
当我尝试使用VBA时,我已经为WdOpenFormat枚举使用了许多看起来很明显的值,但似乎没有任何帮助。
我真的必须将我的扩展名更改为.docx才能让Word 2003打开它吗?
答案是Office 2007兼容包只是Word的另一个"文本转换器",.docx和.docm扩展似乎是Word用来调用该文本转换器的。
然而,本文处理了在Word2003环境中将保存为.docx的问题,并给出了如何打开文档的提示。使用该链接中定义的宏作为指南,以下是(在C#中)如何为打开文档找到正确的"OpenFormat"值的要点:
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;
}