【问题标题】:Format an excel column to "yyyy-MM-dd" via .net通过 .net 将 excel 列格式化为“yyyy-MM-dd”
【发布时间】:2011-10-31 20:39:36
【问题描述】:

我正在尝试格式化我在 .net 应用程序中创建的 excel 列。我向 excel 表发送了正确格式的日期,但是,由于某种原因,Excel 似乎以自己的方式对其进行了格式化。以下是我拥有的,但它不起作用:

sheet.Cells[i, 2] = String.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(dr["date"].ToString())); //yyyy-mm-dd
                    ((Excel.Range)sheet.Cells[i, 2]).EntireColumn.NumberFormat = "yyyy-MM-dd";

我得到的格式是 mm/dd/yyyy。如何格式化此列?提前谢谢你。

已添加 不知道这是否重要,但这就是我保存 excel 文件的方式:

 wb.SaveAs(FileName, Excel.XlFileFormat.xlCSV,
                          null, null, false, false, Excel.XlSaveAsAccessMode.xlNoChange,
                          false, false, null, null, null);

【问题讨论】:

    标签: c# .net visual-studio excel


    【解决方案1】:

    试试这个:

    ((Excel.Range)sheet.Cells[i, 2]).EntireColumn.NumberFormat = "yyyy-MM-dd";
    sheet.Cells[i, 2].Value2 = Convert.ToDateTime(dr["date"].ToString());
    

    或者干脆(使用字符串)

    ((Excel.Range)sheet.Cells[i, 2]).EntireColumn.NumberFormat = "@";
    sheet.Cells[i, 2].Value2 = Convert.ToDateTime(dr["date"].ToString())
                               .ToString("yyyy/MM/dd");
    

    【讨论】:

    • 完全没有错误。问题是当我打开 Excel 文件时,它仍然是 mm/dd/yyyy 格式。
    • @Eric:您在应用该代码后是否保存了您的 excel 文件?
    • 是的,我确实使用了 wb.SaveAs(FileName, Excel.XlFileFormat.xlCSV, null, null, false, false, Excel.XlSaveAsAccessMode.xlNoChange, false, false, null, null, null);
    • @Eric:您将文件保存为 CSV:该格式不支持 格式化。尝试另存为Excel文件,重新打开时看看它是否正确使用。无论如何,看看我编辑的帖子......
    • 文件必须是 CSV 格式,因为它将上传到仅接收 CSV 文件的门户。
    【解决方案2】:

    不要在 Excel 中打开它,Excel 会重新格式化它打开的任何 CSV 文件,并使用您的系统区域设置显示日期和时间。

    相反,请在普通文本编辑器(例如记事本)中查看 CSV 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-18
      • 2018-04-02
      • 2016-12-13
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      • 2013-11-01
      相关资源
      最近更新 更多