Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# StreamWriter:写入csv文件后excel文件中的日期格式错误_C#_Excel_Csv - Fatal编程技术网

C# StreamWriter:写入csv文件后excel文件中的日期格式错误

C# StreamWriter:写入csv文件后excel文件中的日期格式错误,c#,excel,csv,C#,Excel,Csv,我正在使用StreamWriter来编写csv文件 这是我在记事本中打开它时的结果++ 但当我在excel中打开它时,它变成了这样 请注意,格式变成了03-08-18,而不是03/08/2018,我注意到excel中第三列的格式设置为Date,而第四列设置为General。知道为什么吗?如何强制excel将所有格式应用为常规格式?使用文本导入向导,如下所述: 在这里可以定义列分隔符和日期列的解释方式 重复使用时,您可以将步骤记录为VBA宏。您可以在c#中求解: 或: 你写的是文字而不是日期

我正在使用
StreamWriter
来编写
csv
文件

这是我在记事本中打开它时的结果++

但当我在excel中打开它时,它变成了这样


请注意,格式变成了
03-08-18
,而不是
03/08/2018
,我注意到excel中第三列的格式设置为
Date
,而第四列设置为
General
。知道为什么吗?如何强制excel将所有格式应用为常规格式?

使用文本导入向导,如下所述:

在这里可以定义列分隔符和日期列的解释方式

重复使用时,您可以将步骤记录为VBA宏。

您可以在c#中求解:

或:


你写的是文字而不是日期。CSV尝试使用计算机的区域设置对其进行解析。如果无法解析该文本,它将保留为文本。只有美国使用MM/DD/YYYY格式,这意味着美国以外的机器将始终以文本形式踏出最后一行。顺便说一句,第三栏写满了2018年8月3日的条目。如果你想使用Excel,为什么不创建Excel文件,比如使用像EPPlus这样的库?它就像
sheet.LoadFromCollection(myList)
一样简单。如果需要明确的格式,请使用
YYYY-MM-DD
如何强制excel将所有格式应用为常规格式?
编写xlsx文件,而不是CSV文件。
DateTime MyDate = DateTime.Now;
        MyDate.ToShortDateString().Replace("/", "-");
DateTime MyDate = DateTime.Now;
            MyDate.ToString("dd-MM-yyyy");