我的程序(C#.Net 4.5)必须能够生成一些可以加载到Excel中的报告。 我选择将报告导出为.csv格式,因为它是导出为excel理解的格式的最简单方法。 并且它不要求在运行我的程序的机器上安装Excel。
我的问题是导出日期。
我的程序将在客户PC上运行,这可能(很可能)有不同的显示日期的方式,这意味着excel需要不同格式的日期。
我目前的解决方案是将日期导出为:
DateTime LogTime = DateTime.Now;
String TimeFormat = //The format for the specific location, like: "HH:mm:ss dd/MM-yyyy"
//To csv:
// ="10:24:13 27-05-2014"
String reportTime = "=\""+LogTime.ToString(TimeFormat)+"\"";
这个问题是我根据不同的位置创建不同的文件。因此,将文件从一个位置发送到另一个位置可能会导致日期错误。
我的问题是,有没有告诉Excel我的日期是哪种格式? 类似的东西:
//To csv:
// =DateFormatted(10:24:13 27-05-2014,HH:mm:ss dd/MM-yyyy)
String reportTime = "=DateFormatted(" + LogTime.ToString(TimeFormat) + "," + TimeFormat + ")";
然后Excel知道如何阅读日期,而不必担心不同的位置。
答案 0 :(得分:5)
以yyyy-MM-dd HH:mm:ss
的格式导出日期答案 1 :(得分:2)
当你保存到CSV时我恐怕没有。
但您可以使用yyyy/MM/dd hh:mm:ss
格式。
据我所知,这将适用于所有文化。
答案 2 :(得分:1)
根据我的经验,开源的NPOI库(https://npoi.codeplex.com/)非常适合这种情况。