c# - Excel VSTO 中日期的 range.set_Value 格式
问题描述
以下代码将日期值放入 excel 中,但由于某种原因,它们不会自动格式化为日期。如果我手动输入这些日期 - 它们会自动格式化。Excel 在具有欧洲区域设置的 Windows 上运行。如何让 Excel 自动格式化日期?我无法明确应用格式,因为我放入 excel 的范围可能包含不同数据类型的列,并且出于性能原因必须一次性插入整个范围。
string[,] arr = new string [2, 2];
arr[0, 0] = "Date";
arr[0, 1] = "DateTime";
arr[1, 0] = "21/12/2018";
arr[1, 1] = "26/12/2019";
Range rng = Globals.ThisAddIn.Application.ActiveSheet.Range["A1:B2"];
rng.set_Value(XlRangeValueDataType.xlRangeValueDefault, arr);
更新:我实际上已将其范围缩小到以下内容:
string dt = DateTime.Now.ToString(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat);
worksheet.Range["A1"].Value = dt;
奇怪的是,字符串是根据用户的语言环境设置格式化的,但是当我将它插入到第二行的 excel 中时——Excel 出于某种原因将其转换为美国格式。因此,在 Windows 中设置欧洲日期格式时,如果字符串是“11/03/2019”,我在运行代码后在 Excel 中看到的是“03/11/2019”。
解决方案
推荐阅读
- php - 如何使用 PHP 和 MySQL 解决 FizzBuzz 问题?
- scikit-learn - np.zeros(self.shape,dtype=self.dtype,order=order)
- javascript - 仅在threejs中检测WebGL Canvas上的触摸
- python - 在python中显示不同时间的节点连接
- html - 如何在堆叠图标内居中元素
- ios - 如何打开watchos的网址
- vue.js - 为什么像`beforeLeave`这样的过渡方法在nuxt中不起作用
- javascript - 使用 .closest() 比较最近的 id
- c - Linux C 套接字 - recvmsg - 获取源 ifindex
- python - 如何在整个音频文件上调用 librosa 函数?