一,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...