“旧格式或无效类型库”

时间:2011-02-09 12:47:39

标签: delphi ms-office office-2007 multilingual

我们有一个应用程序,除了许多其他功能外,还有一个导出到Excel功能。这使用Excel COM接口,只是将一些数据导出到Excel中的新工作表,并将其格式化为它来自的位置。多年来,我们知道如果机器区域设置设置为与安装Office不同的东西,则会出现“旧格式或无效类型库”。但是,在Excel 2003下,可以下载并安装MUI(多语言用户界面)包来解决问题。使用Excel 2007及更高版本似乎没有相同的包 - 有语言包(我们从MSDN for 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中做过,你能分享一些代码片段吗?

1 个答案:

答案 0 :(得分:9)

正确的解决方案是在您调用期望LOCALE_USER_DEFAULT的方法时传递LCID。你传递给这些职能的是什么?

如果你这样做,那么你不需要任何这种MUI魔法。