摘要:匯入csv檔到DataTable中的做法
寫一個將outlook匯出的csv檔,要批次把通訊錄的資料寫到資料庫中
但發現用下列的oledbconnection來做連接讀取的話,就不會有被截斷的問題!還不錯用。
不過這個要把這一段放在aspx前端網頁中的cs,才有用喔,放在類別檔的cs是無效的,要自己再動點手腳,因為我是直接使用FileUpload這個上傳元件,所以要放在aspx前端網頁。
使用下列程式碼,就可以將csv檔寫到DataTable,並回傳去做後讀的處理,還蠻不錯用的。
以下程式碼大部份是我的同事協助提供,我再把oledb那段換掉,本來是讀excel的,我換成讀csv
private void ProcessTransData()
{
string f = this.CsvUpload.FileName;
FileInfo fi = new FileInfo(f);
string name = CsvUpload.FileName;
string savePath = @"~\public\" + name;
//將檔案先上傳到server上
CsvUpload.SaveAs(Server.MapPath(savePath));
DataTable dt = this.GetCSVData(@"~\public\", fi.Name);
}
public DataTable GetCSVData(string savePath, string sheetname)
{
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='Text;'", Server.MapPath(savePath)));
System.Data.OleDb.OleDbDataAdapter adt = new System.Data.OleDb.OleDbDataAdapter("select * from [" + sheetname + "]", conn);
DataSet ds = new DataSet();
adt.Fill(ds);
DataTable dt = ds.Tables[0];
return dt;
}
‧覺得文章不錯請給我一個『讚』作為鼓勵喔!