-1

http://exceldatareader.codeplex.com/を使用しています。D/M/Y などの日付を持つ列を含む Excel ファイルがあります。このコードを使用してこのファイルを読み込もうとしています:

FileStream stream = File.Open(FilePath, FileMode.Open, FileAccess.Read);
IExcelDataReader excelReader = null;
lock (LockToReadExcelFile)
{
       if (FilePath.EndsWith(".xls", true, System.Globalization.CultureInfo.InvariantCulture))
       {
           excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
       }
       else if (FilePath.EndsWith(".xlsx", true, System.Globalization.CultureInfo.InvariantCulture))
       {
           excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
       }
       else
       {
           return;
       }
}

次に、次のように DataSet に追加します。

excelReader.IsFirstRowAsColumnNames = false;
DataSet excelDataTable = excelReader.AsDataSet();

オブジェクトの行を返し{System.DateTime}ます。日付データを形式で解析してほしいSystem.String(たとえば、Date 7/11/2015 は として返され7/11/2015 12:00:00 AM {System.DateTime}ます)。

PS: 私も試してみexcelReader.AsDataSet(false);ましたが、結果は同じです。

4

2 に答える 2

0

Excel を正しく使用している場合、数値は System.Double として、日付は System.DateTime として、テキストは System.String として保持されます (少なくとも、.net からわかるように)。確かに、Excel ユーザーは数値または日付を文字列として含むセルの形式を設定できますが、それは正常ではありません。したがって、Excel ファイルを読み取ると、数値は double、日付は DateTime などになります。非常に便利。文字列に変換するのが最も簡単です。必要な機能のドキュメントページは次のとおりですあなたが言及した形式に変換するには、使用します

dataTimeValue.ToString("G");
于 2015-12-21T16:03:31.400 に答える