0

我有从 MS excel 文件中读取数据的 ac# 应用程序。excel单元格格式是[$-10409]m-d-yyyy h:mm:ss AM/PM

在此处输入图像描述

我正在使用NuGet中的ExcelDataReader从excel 文件中读取数据。

var file = new FileInfo(strFilePath);
        using (var stream = new FileStream(strFilePath, FileMode.Open))
        {
            IExcelDataReader reader = null;
            if (file.Extension == ".xls")
            {
                reader = ExcelReaderFactory.CreateBinaryReader(stream);

            }
            else if (file.Extension == ".xlsx")
            {
                reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
            }

            ds = reader.AsDataSet();
            dt = ds.Tables[0];
        }

当我读取数据时,值会改变。例如7-1-2016 11:05:00 AM转换为42552.4618055556.

有没有办法在阅读时获得正确的值?

4

1 回答 1

0

您看到的双精度日期是自 1900-01-01 以来的天数。如果你采取42552.46/365=116.58.

由于确实存在闰年,因此不建议使用此方法进行翻译。您可以通过以下方式重新格式化单元格:

  1. 突出显示单元格
  2. 单击格式化单元格
  3. 选择日期
  4. 选择日期可视化格式
于 2016-07-25T13:58:10.543 回答