我想根据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.
有什么想法吗?
答案 0 :(得分:1)
不确定不同单词版本之间的API是完全相同的。
如果我可以提出建议 - 请使用NetOffice(see link)代替办公室互操作程序集。
API与Office Interop API相同,它可以与所有(当前)版本的Microsoft Office一起使用。
注意 - 以下是一个示例:http://netoffice.codeplex.com/wikipage?title=Word_Example01
您应该导入以下命名空间以使其起作用:
using NetOffice;
using Word = NetOffice.WordApi;
using NetOffice.WordApi.Enums;
using Office = NetOffice.OfficeApi;
答案 1 :(得分:0)
那是因为您使用了错误版本的互操作程序集。您不能引用仅存在于框架的更高版本中的值。
您应该使用更高的互操作版本,或者创建两个单独的项目,一个用于旧版本的互操作程序集,一个用于更高版本。
答案 2 :(得分:0)
使用以下项目的代码库,使用c#创建和保存ms字: https://github.com/kauser-cse-buet/NetOfficeUsage