指定区域& Microsoft Office互操作的文化

时间:2010-12-10 16:20:42

标签: .net excel internationalization interop ms-office

我想通过.net互操作访问Excel。我需要使用不同的区域,但不想更改整个操作系统的区域。有没有办法以编程方式指定? ApplicationClass的LanguageSettings属性是只读的。

3 个答案:

答案 0 :(得分:1)

您可以设置当前线程的文化:

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

此外,当需要指定要使用的en-US文化时,Excel中存在/是一个错误 互操作。它取决于excel配置(是否应用更新)

例如,您的操作系统文化可能是俄语,但如果您明确将线程的文化设置为en-US,那么一切都将是正确的。

答案 1 :(得分:1)

如果是关于分隔符,你可以这样做:

    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;

答案 2 :(得分:0)

这可能对您的应用程序造成危险。 在我的程序中,当OS语言版本与Office语言版本不同时,程序崩溃,因为Office试图自动运行语言包。奇怪的行为。