gpt4 book ai didi

c# - ExcelDataReader 数据类型 "date"被转换

转载 作者:太空狗 更新时间:2023-10-30 00:38:23 26 4
gpt4 key购买 nike

以下代码从 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);
}
}

}

这适用于每一列,除了包含“日期”的列。

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

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

最佳答案

当您阅读 Excel 时,您正在阅读日期的内部表示。42781 是内部表示(天正弦 1/1/1900)。因此,您需要使用 DateTime.FromOADate 转换为日期。

对于您的情况,恐怕您无法按原样绑定(bind)表格。 (顺便说一句,为什么你每次都要遍历列/行并设置绑定(bind)?你只需要绑定(bind)一次表。)。无论如何,您可能需要以某种方式更改表或创建一个具有转换值的新表。或者可能有某种您可以使用的值转换器

关于c# - ExcelDataReader 数据类型 "date"被转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41671548/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com