2

私は数時間を費やしましたが、まだ満足のいく答えがありません。

Excelドキュメントのセルをクリックすると、日付フィールドとしてマークされます。ただし、OpenXml を使用して DateType を調査すると、DataType NULL の Cell オブジェクトが返されます。この場合の Cell.StyleIndex は「116」に設定されていることに気付きましたが、Excel と同じように常に Date-cell を認識することを保証したいと思います。日付フィールドを示すデータスタイルインデックスの完全なリストを取得するには?

    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 に答える