在很多系統中,都需要讀取csv檔案,我在以前的一個項目中也遇到過要將csv檔案中的資料讀取到datatable中進行處理,下面的代碼
是我以前寫的將csv檔案中的資料匯入到DataTable中的方法,現在貼出來給大家分享:
//GetCSVFile'S FileName and Data擷取csv檔案中資料,並將資料匯入DataTable中
// mycsvdt 用來裝csv檔案中資料的datatable,filepath是指csv檔案的路徑
private bool OpenCSVFile(ref DataTable mycsvdt,string filepath)
{
string strpath = filepath; //csv檔案的路徑
try
{
int intColCount = 0;
bool blnFlag = true;
DataColumn mydc;
DataRow mydr;
string strline;
string [] aryline;
StreamReader mysr = new StreamReader(strpath,System.Text.Encoding.Default);
while((strline = mysr.ReadLine()) != null)
{
aryline = strline.Split(new char[]{','});
//給datatable加上列名
if (blnFlag)
{
blnFlag = false;
intColCount = aryline.Length;
int col=0;
for (int i = 0; i < aryline.Length; i++)
{
col=i+1;
mydc = new DataColumn(col.ToString());
mycsvdt.Columns.Add(mydc);
}
}
//填充資料並加入到datatable中
mydr = mycsvdt.NewRow();
for (int i = 0; i < intColCount; i++)
{
mydr[i] = aryline[i];
}
mycsvdt.Rows.Add(mydr);
}
return true;
}
catch (Exception e)
{
throw (Stack.GetErrorStack(strpath+"讀取CSV檔案中的資料出錯." + e.Message, "OpenCSVFile("));
return false;
}
}