2

我花了几个小时,但仍然没有令人满意的答案。

当我单击 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;
        }
    }
4

1 回答 1

0

我认为问题在于 OPENXML 如何决定单元格的类型。至少我知道 OLEDEB 中存在类似的问题。通常它是通过从列中读取前几个值来实现的。

您可以做的是在将值输入到 excel 之前将格式定义为日期,或者使用 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel\ -->TypeGuessRows。看:

OleDB 和混合 Excel 数据类型:缺少数据

通过 OleDB 读取 Excel 文件时,非空单元格中的 DBNull

于 2013-02-25T13:35:30.133 回答