Несоответствие Cultureinfo вызвало сбой Excel Automation - PullRequest
0 голосов
/ 05 октября 2010

Я использую взаимодействие для открытия файлов Excel в C #.Текущая проблема, с которой я сталкиваюсь, заключается в том, что если установленный Excel является английским, то для начала работы я должен установить LocalSettings на английский.Это не удастся эти два не совпадают.

Я обнаружил, что это известная проблема http://support.microsoft.com/kb/320369. Однако я не всегда мог установить нить cultureinfo на английский, потому что у меня нет контроля над тем, какую версию Excel устанавливает пользователь.Похоже, что единственное решение состоит в том, чтобы выяснить языковые настройки установленного Excel и убедиться, что два текущих потока cultureinfo совпадают.Однако я не смог получить правильные языковые настройки из установленного Excel.

Ваша помощь приветствуется.

Ответы [ 3 ]

1 голос
/ 05 октября 2010

Не могу ответить на ваш вопрос напрямую, но я недавно перешел на NPOI для всех моих программ на C # Excel.

Это действительно хорошая библиотека, она не требует установки Excel на серверах и выдает встроенную версию, которую я освоил менее чем за день.

Работает только с файлами Excel 2003, и документация не очень хорошая. Тем не менее, он поставляется с полным набором примеров, которые показывают много ожидаемых вариантов использования.

Учитывая природу вашей проблемы и нулевое требование NPOI для установки в Excel, NPOI может не заботиться об английских настройках.

1 голос
/ 10 февраля 2011

Другим вариантом проверки реестра является извлечение языка из приложения Excel с использованием следующего:

New System.Globalization.CultureInfo (
ExcelApp.LanguageSettings.LanguageID (Office.MsoAppLanguageID.msoLanguageIDUI))

Для этого требуется ссылка на Office.dll v14.0

0 голосов
/ 05 октября 2010

Одним из вариантов может быть проверка версии установленного языкового пакета в реестре.В блоге Technet ниже есть больше информации, см. В конце статьи информацию о ключах реестра.

http://blogs.technet.com/b/office_resource_kit/archive/2010/04/02/how-to-determine-which-2007office-system-languages-are-installed.aspx

По ссылке выше:

HKEY_LOCAL_MACHINE\Software\Microsoft\Office\12.0\Common\LanguageResourcesLanguageResources включает следующие ключи реестра:

  • InstallLanguage Представляет основной язык редактирования.
  • Установленные пользовательские интерфейсы Предоставляет список всех доступных языков пользовательского интерфейса на компьютере.
  • UILanguage Представляет язык отображения по умолчанию для пользовательского интерфейса в Office.
  • EnabledLanguages ​​ Указывает идентификатор языкового стандарта (LCID) для языковых функций, которые включены в Office.

Операционная система Windows использует LCID для определения языков в реестре Windows.Список языковых идентификаторов см. В разделе «Языковые идентификаторы в Система Office 2007» (http://technet.microsoft.com/en-us/library/cc179219.aspx).

...