Укажите регион и культуру взаимодействия с Microsoft Office. - PullRequest
0 голосов
/ 10 декабря 2010

Я бы хотел получить доступ к Excel через .net interop.Мне нужно использовать другой регион, но я не хочу менять регион для всей ОС.Есть ли способ указать это программно?Свойство LanguageSettings класса ApplicationClass доступно только для чтения.

Ответы [ 3 ]

1 голос
/ 10 декабря 2010

Вы можете установить культуру текущего потока:

System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-us");

Кроме того, в Excel была / была ошибка, когда необходимо было указать культуру en-US для использования Interop. Это зависит от конфигурации Excel (были ли обновления применены или нет)

Ваша культура ОС может быть, например, русской, но если вы явно установите культуру потока в en-US, все будет в порядке.

1 голос
/ 27 сентября 2012

Если речь идет о разделителях, вы можете сделать это следующим образом:

    var ci = new CultureInfo(locale);
    var excelApp = new Microsoft.Office.Interop.Exce.Application();

    excelApp.UseSystemSeparators = false;
    excelApp.DecimalSeparator = ci.NumberFormat.NumberDecimalSeparator;
    excelApp.ThousandsSeparator = ci.NumberFormat.NumberGroupSeparator;
0 голосов
/ 10 декабря 2010

Это может быть опасно для вашего приложения. В моей программе, когда языковая версия ОС отличалась от языковой версии Office, программа потерпела крах, поскольку Office попытался автоматически запустить языковой пакет. Странное поведение.

...