C# Cultureinfo不匹配导致Excel自动化失败
我正在使用interop在C#中打开Excel文件。我目前的问题是,如果我安装的Excel是英文的,那么为了让开放式工作,我必须将LocalSettings设置为英文。如果这两个不匹配,它将失败 我发现这是一个已知的问题。但是,我不能总是将线程cultureinfo设置为英语,因为我无法控制用户安装的Excel版本。看起来唯一的解决方案是找出已安装Excel的语言设置,并确保当前线程cultureinfo的两个设置相同。但是,我无法从安装的Excel中获得正确的语言设置C# Cultureinfo不匹配导致Excel自动化失败,c#,excel,automation,cultureinfo,C#,Excel,Automation,Cultureinfo,我正在使用interop在C#中打开Excel文件。我目前的问题是,如果我安装的Excel是英文的,那么为了让开放式工作,我必须将LocalSettings设置为英文。如果这两个不匹配,它将失败 我发现这是一个已知的问题。但是,我不能总是将线程cultureinfo设置为英语,因为我无法控制用户安装的Excel版本。看起来唯一的解决方案是找出已安装Excel的语言设置,并确保当前线程cultureinfo的两个设置相同。但是,我无法从安装的Excel中获得正确的语言设置 非常感谢您的帮助。一个选
非常感谢您的帮助。一个选项可能是检查注册表中已安装语言包的版本。下面的Technet博客提供了更多信息,有关注册表项的信息,请参阅文章末尾 从以上链接:
HKEY\U LOCAL\U MACHINE\Software\Microsoft\Office\12.0\Common\LanguageResources
LanguageResources包括以下注册表项:
- InstallLanguage表示主要编辑语言李>
- InstalledUIs提供计算机上所有可用UI语言的列表
- UILanguage表示Office中用户界面的默认显示语言李>
- EnabledLanguages表示在Office中启用的语言特定功能的区域设置标识符(LCID)李>
Windows操作系统使用LCID标识Windows注册表中的语言。有关语言标识符的列表,请参阅2007 Office system中的语言标识符(http://technet.microsoft.com/en-us/library/cc179219.aspx).无法直接回答您的问题,但我最近已开始使用C#Excel编程 这是一个非常好的库,不需要在服务器上安装Excel,并且在不到一天的时间内就生成了我所熟悉的本机 它只适用于Excel2003文件,文档也不是很好。然而,它附带了一整套示例,展示了许多预期的用例
考虑到问题的性质,以及NPOI对Excel安装的零要求,NPOI可能不关心英语设置。检查注册表的另一个选项是使用以下方法从Excel应用程序检索语言: 新系统。全球化。文化信息(
ExcelApp.LanguageSettings.LanguageID(Office.MsoAppLanguageID.msoLanguageIDUI))
这需要引用Office.dll v14.0+1,如果这是OP的一个选项,我同意NPOI是一种方法。不要在代码中修复用户可以修复的琐碎内容。我购买了正确版本的Excel或安装了MUI包。这不是你的问题。