Microsoft.Office.Interop.Word._Document mDocument = new Microsoft.Office.Interop.Word.Document();
*//This function will convert .doc to .docx
Public Function FileSave(ByVal fileName As String, ByVal openPWD As String, ByVal savePWD As String)
mDocument.SaveAs2(fileName, WdSaveFormat.wdFormatXMLDocument, , openPWD, , savePWD)
End Function*
上面的函数已编写为使用word interop将.doc文件转换为.docx。 文件是成功创建的,但打开时文件内容丢失。
是否遗漏了某些内容,或者是否有其他方法可以将.doc转换为c#或Vb.net中的.docx
答案 0 :(得分:2)
您似乎在内存中创建了一个全新的Word文档,然后将其保存为.DOCX,这就是输出文件为空的原因。
// This line just creates a brand new empty document
Microsoft.Office.Interop.Word._Document mDocument = new Microsoft.Office.Interop.Word.Document();
您需要先打开现有文档,然后另存为所需的文件类型。
像这样的东西(我没有自己测试过,因为没有在Interop机器上测试)
Microsoft.Office.Interop.Word._Document mDocument = wordApp.Documents.Open(sourcepath);
mDocument.SaveAs(outputpath, WdSaveFormat.wdFormatXMLDocument);
在OP请求时,如何获取Word的实例
// Create Word object
Word._Application wordApp = null;
// Try and get an existing instance
try
{
wordApp = (Word._Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");
}
catch { /* Ignore error */ }
// Check if we got an instance, if not then create one
if (wordApp == null)
{
wordApp = new Microsoft.Office.Interop.Word.Application();
}
//Now you can use wordApp
... wordApp.Documents.Open(...);