【发布时间】:2013-02-25 13:07:18
【问题描述】:
我已经花了几个小时,但仍然没有满意的答案。
当我单击 excel 文档中的单元格时,它被标记为日期字段。但是,如果我使用 OpenXml 来调查 DateType - 我将收到 DataType 为 NULL 的 Cell 对象。我注意到,在这种情况下,Cell.StyleIndex 设置为“116”,但我想保证,我将始终以与 Excel 相同的方式识别日期单元格。如何获取指示日期字段的数据样式索引的完整列表?
public bool IsDateCell(Cell cell)
{
switch (cell.StyleIndex.Value)
{
case 116: return true;
case 98: return true;
case 283: return true;
case 282: return true;
default: return false;
}
}
【问题讨论】:
-
我没有使用过 c# - 但请注意 Excel 在内部将日期存储为普通数字,即浮点数 - 作为自 1900 年 1 月 1 日以来经过的天数。所以也许你需要寻找这反而...
-
但是如果 DataType 为 null 并且单元格中的值类型不是 Date 怎么办?例如,4000 不可能是自 1900 年 1 月 1 日以来的时间,而是正常数字?
-
我不知道某处是否有任何“这是一个日期”标志,不要这么认为。您可以检查数字是否在有效范围内(例如 41330(今天)+/- 1000) - 以及单元格的格式是否为日期...