我想通过.net互操作访问Excel。我需要使用不同的区域,但不想更改整个操作系统的区域。有没有办法以编程方式指定? ApplicationClass的LanguageSettings属性是只读的。
答案 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试图自动运行语言包。奇怪的行为。