格式化Excel XML工作表中的DateTime

本文关键字:DateTime 工作 Excel XML 格式化 | 更新日期: 2023-09-27 18:00:04

使用ASP.NET生成Excel XML工作簿时,我将在一行中附加3个单元格,如:

sb.Append(String.Format(
"<Cell><Data ss:Type='"DateTime'">{1}</Data></Cell>{0}",
Environment.NewLine, 
item.DateAvailable.ToString("yyyy-MM-ddTHH:mm:ss.fffffffK")
)); // newlines added for readability;

item.DateAvailable是一个C#DateTime,它必须在Excel中以单元格DateTime结束。

所以

组件中VS2010调试的值:

 2011-08-15T01:16:06.8470000    

excel中的值:

 40761,2299142361

手动转换单元格格式后:

 6-08-11 5:31

但是,当转换时,它在excel中输出为数字,并且单元格格式设置为自定义。当我手动将单元格格式更改回DateTime时,正确的???日期以正确的格式显示。但当然,企业不会接受他们必须自己转换的原始数据;)

也许我使用了错误的StringFormat

在这种情况下,编写DateTime并以正确的DateTime格式在Excel中输出的正确格式是什么

格式化Excel XML工作表中的DateTime

是的,您使用的字符串格式"错误",即Excel无法自动识别(或正确解析)为日期的格式。放下T。此外,Excel中的日期-时间格式至少四舍五入到毫秒,如果不是整数秒的话,所以你还可以去掉一些小数点。

这应该有效:

item.DateAvailable.ToString("yyyy-MM-dd HH:mm:ss.ffff")