0

MS Excel ファイルからデータを読み取る ac# アプリケーションがあります。エクセルのセルフォーマットは[$-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

double として表示される日付は、1900-01-01 からの日数です。あなたが取る場合42552.46/365=116.58

うるう年が存在するため、この方法を使用して翻訳することはお勧めしません。次の方法でセルを再フォーマットできます。

  1. セルを強調表示する
  2. セルの書式設定をクリックします
  3. 日付を選択
  4. 日付の視覚化形式を選択
于 2016-07-25T13:58:10.543 に答える