【发布时间】:2011-06-22 09:01:27
【问题描述】:
使用 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 中必须以单元格日期时间结尾。
所以
VS2010 中调试的值:
2011-08-15T01:16:06.8470000
excel中的值:
40761,2299142361
手动转换单元格格式后:
6-08-11 5:31
但是,在转换时会在 excel 中输出为数字,并且单元格格式设置为自定义。当我手动将单元格格式更改回 DateTime 时,正确???日期以正确的格式显示。但当然,企业不会接受他们必须自己转换的原始数据;)
也许我使用了错误的 StringFormat?
在这种情况下编写 DateTime 并以正确的 DateTime 格式在 Excel 中输出的正确格式是什么?
【问题讨论】: