将日期导出到Csv并告诉excel格式

时间:2014-05-30 13:58:08

标签: c# excel csv export-to-excel export-to-csv

我的程序(C#.Net 4.5)必须能够生成一些可以加载到Excel中的报告。 我选择将报告导出为.csv格式,因为它是导出为ex​​cel理解的格式的最简单方法。 并且它不要求在运行我的程序的机器上安装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知道如何阅读日期,而不必担心不同的位置。

3 个答案:

答案 0 :(得分:5)

以yyyy-MM-dd HH:mm:ss

的格式导出日期

答案 1 :(得分:2)

当你保存到CSV时我恐怕没有。

但您可以使用yyyy/MM/dd hh:mm:ss格式。 据我所知,这将适用于所有文化。

答案 2 :(得分:1)

根据我的经验,开源的NPOI库(https://npoi.codeplex.com/)非常适合这种情况。

  • 您可以将数据导出/导出Excel,也可以导出Word
  • 他们不需要在机器上安装Excel
  • 支持xls和xlsx格式
  • 完全控制格式
  • 总体而言,功能比csv
  • 更多