2011-04-08 59 views
0

在我的開發機器上,我將Office 2007安裝在Win7 x64上。C#Word Interop將docx與Word 2003兼容包保存

目標計算機是在WinXP x64上運行的Office 2003 +兼容包(用於讀取/寫入docx等)。

我的程序除了別的以外,還可以打開/保存爲doc文件的命令,將它們轉換爲docx。

它在我的機器上運行很好,但可悲的是在目標機器上給零大小的文件。沒有任何異常拋出,看起來它工作正常,除了當我看到輸出文件時,它是零長度的。

任何想法爲什麼會發生這種情況,以及如何解決它?

我的最後手段是寫一個醜陋的Word/PowerPoint宏,它會打開一個文檔並保存它。我寧願一切從我的程序自動發生,而無需打開Word/PowerPoint窗口。

+0

沒有足夠的信息來解決。建議您儘可能多地將日誌記錄添加到您的應用程序中。 – 2011-04-08 00:08:52

+0

對此沒有任何登錄。打開/保存文件是使用Office在我的應用程序之外處理的(通過COM,我相信)。我無法訪問Office中的任何調試信息。 – Ozzah 2011-04-08 00:13:31

+0

嗯,棘手的一個!你可以在你的開發(系統測試)機器上設置虛擬機來匹配你的目標環境嗎? – 2011-04-08 00:20:55

回答

2

有沒有必要自動化Word,由於彈出消息,這是相當緩慢和脆弱您可能想看看微軟的Office文件轉換器(ofc.exe),但它有一個不必要的複雜的用戶界面。

最簡單和最快的方法是從.DOC轉換很容易使用下面的命令爲.docx:

"C:\Program Files\Microsoft Office\Office12\wordconv.exe" -oice -nme <input file> <output file> 

其中<輸入文件>和<輸出文件>必須是完全合格的路徑名。

該命令可以很容易地應用到使用for多個文檔:

for %F in (*.doc) do "C:\Program Files\Microsoft Office\Office12\wordconv.exe" -oice -nme "%F" "%Fx" 

可以使用Process.Start方法運行從C#此命令。

0

您確定您正在使用的SAVE或SAVEAS是否指定了正確的選項來強制文件保存爲DOCX?在2007年,這是內置的,但在2003年以下,我相信你必須以不同的方式指定保存格式,明確告訴它使用兼容包中適當的過濾器。