在Excel XML工作表中格式化date时间
使用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
是必须在Excel中以单元格DateTime结尾的C#date时间。
所以
来自VS2010中的debugging在组装中的值:
2011-08-15T01:16:06.8470000
excel中的值:
40761,2299142361
手动转换单元格后:
6-08-11 5:31
但是, 在Excel中将其输出转换为数字时 , 单元格格式设置为自定义 。 当我手动更改单元格格式返回到DateTime正确? date以正确的格式显示。 但是,当然,企业不会接受这样一个原始数据,他们必须转换自己;)
也许我正在使用错误的StringFormat?
在这种情况下写入DateTime的正确格式是什么,并以正确的DateTime格式在Excel中输出?
是的,您使用的是“错误的”string格式,即Excel不能自动识别(或适当地parsing)date的格式。 放下T
此外,Excel中的date – 时间格式至less要毫秒,如果不是整数秒,那么您还可以放弃一些小数位。
这应该工作:
item.DateAvailable.ToString("yyyy-MM-dd HH:mm:ss.ffff")