2011-02-09 44 views
4

我們有一個應用程序,其中包括許多其他功能,導出到Excel功能。這使用Excel COM接口,只需將一些數據導出到Excel中的新工作表中,並將其格式化爲看起來像來自哪裏。多年來,我們知道,如果機器語言環境設置爲與安裝Office的東西不同,那麼會出現「舊格式或無效類型庫」。但是,在Excel 2003下,可以下載並安裝MUI(多語言用戶界面)包來解決該問題。使用Excel 2007及更高版本似乎沒有相應的包 - 有語言包(我們從MSDN爲Office 2007下載了7GB包),但這些都不起作用(setup.exe被「損壞」),或者不要我們仍然得到「舊格式或無效類型庫」的問題。「舊格式或無效類型庫」

有沒有人知道是否有Office 2007和Office 2010的包,肯定會解決這個問題,以及從哪裏得到它?

另外,還有一個MS鏈接(http://support.microsoft.com/default.aspx?scid=kb;en-us;Q320369),它顯示了一些代碼(在VB.Net中我認爲),它聲稱在使用Excel做東西之前暫時將文化設置爲「en-US」,然後將其設置回。我對此解決方案持懷疑態度,因爲它似乎認爲原始Office安裝始終是「en_US」。如果是瑞士德語怎麼辦?有沒有人成功地使用過這種方法,並且他們曾經在win32 Delphi中完成過,並且可以分享幾個代碼片段嗎?

回答

8

正確的解決方案是在每次調用預計爲LCID的方法時都通過LOCALE_USER_DEFAULT。你傳遞給這樣的功能是什麼?

如果你這樣做,那麼你不需要任何這種MUI魔法。

+0

當我們需要傳遞一個LCID時,我們使用Windows.pas中定義的GetUserDefaultLCID(函數GetUserDefaultLCID;外部kernel32名稱'GetUserDefaultLCID';)。我現在已將其更改爲LOCALE_USER_DEFAULT,並且這一切都完美無缺!非常感謝您的幫助。 – 2011-02-09 13:40:08