2011-10-23 84 views
1

我正在使用以下代码导入CSV文件。导入CSV处理日期

 try 
     { 
      OleDbConnection ExcelConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties=Text;"); 
      OleDbCommand ExcelCommand = new OleDbCommand(@"SELECT * FROM " + fileName, ExcelConnection); 

      OleDbDataAdapter ExcelAdapter = new OleDbDataAdapter(ExcelCommand); 

      ExcelConnection.Open(); 

      DataSet ExcelDataSet = new DataSet(); 
      ExcelAdapter.Fill(ExcelDataSet); 

      ExcelConnection.Close(); 
      return ExcelDataSet; 
     } 
     catch 
      (Exception ex) 
     { 
      MessageBox.Show("Cannot read excel file"); 
      return null; 
     } 

这里当列有一个值作为

19.10.2011 10时08分56秒GMT

它变成为

19.102

任何人都可以帮助我吗?

问候,

回答

1

Jet提供可以在包含您的CSV文件的目录使用schema.ini文件。

例如:

[mycsv_file.csv] 
Format=CSVDelimited 
Col1=myname Text 
Col2=mydate Date 
Col3=mynumber Integer 
DateTimeFormat=dd.mm.yyyy hh.nn.ss 

这允许您为列指定名称和类型。到目前为止,我还无法找到时区字段的说明符,因此上述内容对您的特定格式无效。你可以做的一件事是将日期解析为一个字符串,将格式设置为Text,然后在C#中进行处理。