2011-10-23 115 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#中進行處理。