我们创建包含日期的文件,格式为 dd/mmm/yyyy。这些电子表格文件采用 html 格式,扩展名为 .xls(更多信息:通过 HttpContext.Current.Response.ContentType = "application/vnd.ms-excel" 创建;)
当我将其中一个文件加载到我的 Win7 计算机上的 Excel 2007 中时,所有日期都显示为 dd-mmm-yy(例如“2010 年 6 月 28 日”) - 这与我们将文件加载到旧版 Excel 程序(也本地化为英语)时的行为相同。
当将同一文件加载到本地化为荷兰语(我无法访问)的 XP 上的 Excel 2002 NL 中时,一些日期会显示为 dd-mmm-yy但其他日期显示为 dd/Mmm/yyyy。
这似乎与日期的月份元素有关:
含有“Oct”、“Mar”或“May”的月份显示为 dd/Mmm/yyyy(例如“30/Mar/2010”),其他月份显示为 dd-mmm-yy(例如“28-jun-10”)
当我查看单元格格式信息时,对于显示为 dd-mmm-yy 的单元格,我会得到“自定义”/“dd-mmm-yy”,而对于显示为 dd/Mmm/yyyy 的单元格,我会得到“常规”/“无特定数字格式”。
为什么是那些特定的月份?我猜是因为本地化?有没有办法让所有日期都一致显示,而不必手动更改表格?
Excel NL 中是否有可以执行此操作的设置?
更新:刚刚检查过 - 5 月、3 月和 10 月是三个月,其中月份的简短三个字母形式在英语和荷兰语中都不匹配(其他月份匹配)。因此,这就是这些日期未被选为日期的原因。
有没有办法让 Excel 将这些作为日期 - 即使缩写形式与英语不匹配?
答案1
对于“为什么是那些特定的月份?”这个问题
荷兰语中所有其他月份的缩写与英语相同。
Jan Jan
Feb Feb
Mar Maa <--
Apr Apr
May Mei <--
Jun Jun
Jul Jul
Aug Aug
Sep Sep
Oct Okt <--
Nov Nov
Dec Dec
如您所见,只有 March、May 和 October 的缩写与荷兰语不同。
答案2
答案很晚,但对于仍在寻找解决方案的人来说:我在尝试将“ma 02 okt 2017 17:00”或“vr 02 mrt 2018 19:00”等文本转换为日期时遇到了类似的问题。Excel 的 datevalue 函数是特定于语言的,因此我必须将文本“okt”替换为“/10/”,将“mrt”替换为“/03/”,将“mei”替换为“/05/”。对于所有其他月份,英语和荷兰语设置之间没有区别,因此不需要用数字替换文本。完整公式:
=DATEVALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(MID(G114;3;12);" okt ";"/10/");" mrt ";"/03/");" mei ";"/05/"))