将date导出到Csv并告诉excel的格式
我的程序(C#.Net 4.5)必须能够生成一些可以加载到Excel中的报告。 我select导出为.csv格式的报告,因为它是导出为excel格式的最简单的方式。 而且它并不要求运行我的程序的机器上安装Excel。
我的问题是导出date。
我的程序将运行在客户电脑上,可能(很可能)有不同的方式显示date,这意味着Excel的期望date在不同的格式。
我目前的解决scheme是导出date为:
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)+"\"";
这个问题是我根据不同的位置创build不同的文件。 因此,从一个位置向另一个位置发送文件可能会导致date错误。
我的问题是,有没有办法告诉Excel我的date格式是什么? 就像是:
//To csv: // =DateFormatted(10:24:13 27-05-2014,HH:mm:ss dd/MM-yyyy) String reportTime = "=DateFormatted(" + LogTime.ToString(TimeFormat) + "," + TimeFormat + ")";
然后Excel知道如何阅读date,而不必担心不同的位置。
以yyyy-MM-dd HH:mm:ss格式导出date
当你保存到CSV,恐怕没有。
但是你可以使用yyyy/MM/dd hh:mm:ss
格式。 正如我所知,这将适用于所有文化。
根据我的经验,开源的NPOI库( https://npoi.codeplex.com/ )非常适合这个。
- 你可以导出/从Excel导入/导出数据,Word导出数据
- 他们不需要在机器上安装Excel
- 支持xls和xlsx格式
- 完全控制格式
- 总的来说,更多的function比以往任何时候都可能与csv