【发布时间】:2022-02-02 18:08:14
【问题描述】:
我想将十进制值从我的程序复制到 Excel,反之亦然。我的程序将双精度值格式化为带有“。”的字符串。作为小数分隔符,但如果我将这些值粘贴到 excel 中,它们将被格式化为日期,因为我的 excel 程序以某种方式适用于不同的文化,即使我的操作系统是英语并且 Excel 是用英语安装的,但我使用的是德语键盘布局。所以我猜excel决定了它的文化格式。
我知道我可以通过将区域性参数化到 .ToString() 和 Parse 方法中来防止解析错误:
value.ToString(CultureInfo.CreateSpecificCulture("de-DE"));
double.TryParse(string, NumberStyles.Float, CultureInfo.CreateSpecificCulture("de-DE"), out y);
问题是我不了解客户的文化,他们在世界各地工作,而我的课程是英语。但我不能只使用英文格式,因为它在粘贴到 excel 时会引起麻烦。
我试图通过以下方式了解当前的文化:
CultureInfo currentCulture = CultureInfo.CurrentUICulture;
CultureInfo currentCulture = CultureInfo.CurrentCulture;
第一个返回“en-US”,第二个返回“”不变文化。 所以这对我一点帮助都没有。
有没有办法从 Windows 中读取当前活动键盘布局中的文化信息?或者是否可以直接从excel中检索信息?或者有人对我的问题有更好的解决方案吗?我不认为我是第一个遇到这种情况的人,但我在 google 上找不到任何有用的东西。
【问题讨论】:
-
这听起来像是您选择了“,”作为小数点分隔符的系统设置。