2010-12-10 6 views
0

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

ответ

0

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

+0

Да, «Старый формат или недействительными библиотеки типов». Я думаю, пакет интерфейса интерфейса будет работать, но Microsoft взимает $ за мой желаемый язык. –

1

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

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

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

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

+0

Кажется не работает. –

0

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

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; 
Смежные вопросы