How to make correct date format when writing data to Excel

后端 未结 10 1921
[愿得一人]
[愿得一人] 2020-11-30 04:56

Iam exporting a DataTable to an Excel-file using office interop. The problem is, that Excel does not recognize dates as such, but instead it displays numbers. In another cas

10条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-11-30 05:08

    I know this question is old but populating Excell Cells with Dates via VSTO has a couple of gotchas.

    • Formatting the entire column did NOT work for me.

    • Not even this approach from Microsoft worked: http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.namedrange.numberformat.aspx

    I found Formula's don't work on dates with yyyy-mmm-dd format - even though the cells were DATE FORMAT! You have to translate Dates to a dd/mm/yyyy format for use in formula's.

    For example the dates I am getting come back from SQL Analysis Server and I had to flip them and then format them:

    using (var dateRn = xlApp.Range["A1"].WithComCleanup())
    {
        dateRn.Resource.Value2 = Convert.ToDateTime(dateRn.Resource.Value2).ToString("dd-MMM-yyyy");
    }
    
    
    using (var rn = xlApp.Range["A1:A10"].WithComCleanup())
    {
        rn.Resource.Select();
        rn.Resource.NumberFormat =  "d-mmm-yyyy;@";
    }
    

    Otherwise formula's using Dates doesn't work - the formula in cell C4 is the same as C3:

    enter image description here

提交回复
热议问题