保存Word文档

我想根据Word安装版本保存Word文档;

如果是Word 2003(适当的版本号是11),带有DOC扩展名。
如果Word版本高于2003,则使用DOCX扩展。

差异反映在发送到SaveAS方法的第二个参数中:

 object fileFormat = GraphDocsSettings.Default.WordInstalledVersion > 11.0? WdSaveFormat.wdFormatXMLDocument : WdSaveFormat.wdFormatDocument; wordDoc.SaveAs(ref outputFile, fileFormat, 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, ref missing); 

但是,当使用Interop.Word 11.0时,我收到以下错误:

 Microsoft.Office.Interop.Word.WDSaveFormat does not contain a definition for wdFormatXMLDocument. 

有任何想法吗?

不确定不同单词版本之间的API是否完全相同。

如果我可以提出建议 – 使用NetOffice( 请参阅链接 )而不是办公室互操作程序集。

API与Office Interop API相同,它可以与所有(当前)版本的Microsoft Office一起使用。

NB – 以下是一个示例: http : //netoffice.codeplex.com/wikipage?title = Word_Example01

您应该导入以下命名空间以使其工作:

 using NetOffice; using Word = NetOffice.WordApi; using NetOffice.WordApi.Enums; using Office = NetOffice.OfficeApi; 

那是因为你使用错误版本的互操作程序集。 您不能引用仅存在于框架的更高版本中的值。

您应该使用更高的互操作版本,或创建两个单独的项目,一个用于较旧版本的互操作程序集,一个用于较高版本。

使用以下项目的代码库使用c#创建和保存ms字: https : //github.com/kauser-cse-buet/NetOfficeUsage