«старый формат или неверная библиотека типов» - PullRequest
4 голосов
/ 09 февраля 2011

У нас есть приложение, которое, помимо прочего, имеет функцию экспорта в Excel.Он использует интерфейс Excel COM и просто экспортирует некоторые данные на новый лист в Excel и форматирует их так, чтобы они выглядели так, как они были получены.В течение многих лет мы знали, что если для языкового стандарта компьютера будет установлено значение, отличное от установленного в Office, то возникнет «старый формат или недопустимая библиотека типов».Однако в Excel 2003 можно было загрузить и установить пакет многоязыкового пользовательского интерфейса для решения проблемы.В Excel 2007 и более поздних версиях, похоже, нет эквивалентного пакета - существуют языковые пакеты (мы загрузили пакет из 7 ГБ из MSDN для Office 2007), но они либо не работают (setup.exe «поврежден»), либо не работаютне работают в том смысле, что мы все еще сталкиваемся с проблемой «старого формата или неверной библиотеки типов».

Кто-нибудь знает, есть ли пакет для Office 2007 и Office 2010, который определенно решит эту проблему, и гдечтобы получить его от?

В качестве альтернативы, есть ссылка MS (http://support.microsoft.com/default.aspx?scid=kb;en-us;Q320369), которая показывает некоторый код (в VB.Net, я думаю), который якобы временно устанавливает культуру на «en-US» передделать что-то в Excel, а затем отключает его. Я скептически отношусь к этому решению, потому что, похоже, предполагается, что исходная установка Office всегда будет "en_US". Что если это был швейцарский немецкий? Кто-нибудь когда-либо успешно использовал этот подход, иони когда-либо делали в Win32 Delphi, и вы можете поделиться несколькими фрагментами кода?

1 Ответ

9 голосов
/ 09 февраля 2011

Правильное решение - передавать LOCALE_USER_DEFAULT всякий раз, когда вы вызываете метод, ожидающий LCID. Что вы переходите на такие функции?

Если вы сделаете это, вам не понадобится эта магия MUI.

...