ExcelDataReader 数据类型“日期”被转换

rev*_*veN 5 c# excel date exceldatareader

以下代码从 excel 文件中读取数据:

        string path = "testtable.xls";

        FileStream stream = File.Open(path, FileMode.Open, FileAccess.Read);

        IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);

        excelReader.IsFirstRowAsColumnNames = true;
        DataSet result = excelReader.AsDataSet();

        foreach (DataTable Table in result.Tables)
        {

            for (int i = 0; i < Table.Rows.Count; i++)
            {
                for (int j = 0; j < Table.Columns.Count; j++)
                {
                    dataGrid1.ItemsSource = new DataView(Table);
                }
            }

        }
Run Code Online (Sandbox Code Playgroud)

这适用于每一列都很好,除了带有“日期”的列。

在excel表中,我在 dd.mm.yyyy 中指定了日期,但在我的 gridview 中,我得到了类似的信息:42781而不是15.02.2017

有人知道这个问题的解决方案吗?谢谢

rev*_*veN 3

我找到了解决方案。更改这两行后就可以了。

IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream, true);
DataSet result = excelReader.AsDataSet(true);
Run Code Online (Sandbox Code Playgroud)