C# 如何将DataTable导出到excel但保留格式

C# 如何将DataTable导出到excel但保留格式,c#,excel,C#,Excel,将DataTable转换为excel时,我有两个问题 日期格式很混乱,例如我的原始数据是“2016-12-31”,在excel中变成了“31-12-16” Excel删除尾随的零,例如“01”变为“1” 这是密码 MemoryStream result = new MemoryStream(); StreamWriter writer = new StreamWriter(result); CSVwriter csv = new CSVwriter(); string content = cs

将DataTable转换为excel时,我有两个问题

  • 日期格式很混乱,例如我的原始数据是“2016-12-31”,在excel中变成了“31-12-16”
  • Excel删除尾随的零,例如“01”变为“1”
  • 这是密码

    MemoryStream result = new MemoryStream();
    StreamWriter writer = new StreamWriter(result);
    
    CSVwriter csv = new CSVwriter();
    string content = csv.GetFromTable(table);
    writer.Write(content);
    writer.Flush();
    
    return result;
    
    GetFromTable方法

    StringBuilder str = new StringBuilder();
    StringBuilder rowstr = new StringBuilder();
    string Encloser = "\""
    
    foreach (DataRow row in table.Rows) {
        rowstr.Length = 0;
        foreach (DataColumn col in table.Columns) {
            if (col.Ordinal > 0) {
                rowstr.Append(",");
            }
    
            object obj = row(table.Columns.IndexOf(col));
            rowstr.Append(Encloser + ToStr(obj) + Encloser);
        }
        if (rowstr.Length > 0) {
            str.AppendLine(rowstr.ToString());
        }
    }
    
    return str.ToString();
    
    更新:

    str.ToString()
    result

    "Date","Code"
    "2016-01-31","01"
    "2016-01-31","02"
    

    您检查过表中的数据了吗?我可以确认我的表中的数据是正确的。您的输出似乎是csv,您可以检查str.ToString()中的数据吗;你的输出看起来很完美。excel正在重新格式化您的数据。是否有解决方法?