c 開發筆記之CSV與Datatble相互轉換

2021-07-25 08:32:22 字數 1895 閱讀 9985



一,csv轉datable

public datatable csvtodatatable(string strfilename)

}else

dt.rows.add(dr);}}

sr.close();

fs.close();

return dt;

}二,datatble轉換成csv檔案

public void datatabletocsv(datatable dt, string strfilename)

}else if (strfilename.substring(pos + 1).equals("batch_user_sample.csv"))

}else

}sw.writeline(data);}}

sw.close();

fs.close();

}三,excel轉換成datatble

using excel = microsoft.office.interop.excel;

引用:microsoft.office.interop.excel.dll  ,  microsoft.csharp.dll 

try//生成行資料

excel.range range;

for (int irow = 2; irow <= irowcount; irow++)

dt.rows.add(dr);}}

catch (exception err)

finally

return dt;

}四,datatable 轉換成excel檔案

= "contactlist.xlsx";      

for (int i = 0; i < dt.columns.count; i++)

//因為第一行已經寫了表頭,所以所有資料都應該從a2開始

rangedata = worksheetdata.get_range("a2", miss);

excel.range rang = null;

//irowcount為實際行數,最大行

int irowcount = dt.rows.count;

int iparstedrow = 0, icurrsize = 0;

//ieachsize為每次寫行的數值,可以自己設定

int ieachsize = 4000;

//icolumnaccount為實際列數,最大列數

int icolumncount = dt.columns.count;

//在記憶體中宣告乙個ieachsize×icolumnaccount的陣列,ieachsize是每次最大儲存的行數,icolumnaccount就是儲存的實際列數

object[,] objval = new object[ieachsize, icolumncount];

icurrsize = ieachsize;

while (iparstedrow < irowcount)

}string x = "a" + ((int)(iparstedrow + 2)).tostring();

string col = "";

if (icolumncount <= 26)

else

五,關閉程式開啟excel的程序

[dllimport("user32.dll", setlasterror = true)]

static extern int getwindowthreadprocessid(intptr hwnd, out int lpdwprocessid);

system.diagnostics.process.getprocessbyid(lpdwprocessid).kill();}}

catch (exception ex)

}

開發筆記之20140121

關於try catch語句和finally語句塊 自 try語句在返回前,將其他所有的操作執行完,保留好要返回的值,而後轉入執行finally中的語句,而後分為以下三種情況 情況一 如果finally中有return語句,則會將try中的return語句 覆蓋 掉,直接執行finally中的retu...

開發筆記之20140220

1.工廠模式中簡單工廠模式就是建立乙個工廠,在工廠裡根據引數建立相應型別的物件,這樣就可以把建立物件的工作集中在工廠中執行,利用抽象產品角色宣告產品,可以將各類產品的共有方法提取出來在抽象產品角色中宣告。簡單工廠模式的缺點是靈活性不足,如果新加入一種型別則需要修改工廠類,新新增一條建立例項物件的邏輯...

開發筆記之20140313

1.jquery設定標籤的內容不能用val 而要用text 例如 spanid val can not get the value of current span spanid val the value of span can not set the value to the value of s...