在 C# / vb.net 中将.doc转换为.docx

本文关键字:doc 转换 docx 中将 net vb | 更新日期: 2023-09-27 18:31:40

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*

上述函数已写入以使用单词互操作将.doc文件转换为.docx。文件已成功创建,但打开时缺少文件内容。

缺少某些内容,或者是否有任何替代方法可以在 C# 或 Vb.net 中将.doc转换为.docx

在 C# / vb.net 中将.doc转换为.docx

您似乎正在内存中创建一个全新的Word文档,然后将其另存为.DOCX这就是输出文件为空的原因。

// This line just creates a brand new empty document
Microsoft.Office.Interop.Word._Document mDocument = new Microsoft.Office.Interop.Word.Document();

您需要先打开现有文档,然后另存为所需的文件类型。

像这样的东西(我自己还没有测试过,因为不是在具有互操作的机器上)

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(...);