通過C代碼實現(xiàn)將SQL數(shù)據(jù)導(dǎo)入Excel
對于從Sqlserver中的數(shù)據(jù)導(dǎo)入到Excel中,雖然Sqlserver已經(jīng)給了較為簡單的方式,通過交互式的對話框形式來實現(xiàn);但是,有時這種方式對于一個項目而言,并不便利,而且我們都不希望功能的實現(xiàn)
對于從Sqlserver中的數(shù)據(jù)導(dǎo)入到Excel中,雖然Sqlserver已經(jīng)給了較為簡單的方式,通過交互式的對話框形式來實現(xiàn);但是,有時這種方式對于一個項目而言,并不便利,而且我們都不希望功能的實現(xiàn)離開了軟件程序。因此,在此給大家介紹一種C調(diào)用NPOI進行Excel導(dǎo)出的代碼實現(xiàn)方式。
1. 構(gòu)建查詢界面UI
使用VS2010建構(gòu)查詢界面,在此筆者所測試的是Winform程序,一個往來賬查詢的功能。
2. 利用C代碼獲取SQL數(shù)據(jù)
利用C代碼獲取SQL數(shù)據(jù),并將查詢出來的數(shù)據(jù)保存到數(shù)據(jù)表DataTable中。
private void btnRefresh_Click(object sender, EventArgs e)
{
// 查詢條件
string condition "";
if (txtKjkm.Text ! "")
condition "AND [kmdm] like '%" () "%';";
if (txtXmmc.Text ! "")
condition "AND [xmdm] like '%" () "%';";
VouchOp dzd new VouchOp();
dt (condition, conditionQc);
}
3. 設(shè)定dataGridView的數(shù)據(jù)源
將所查詢出來的DataTable數(shù)據(jù)表設(shè)定為dataGridView的數(shù)據(jù)源。
dt;
4. 調(diào)用NPOI將數(shù)據(jù)導(dǎo)入到Excel中
調(diào)用NPOI控件,并將數(shù)據(jù)導(dǎo)入到Excel中。
private void btnExcel_Click(object sender, EventArgs e)
{
(dataGridView1);
}
5. 指定文件存儲路徑
點擊生成EXCEL,跳出存儲對話框,接下來我們做的就是先找到存放這個文件的路徑。
static void WriteToFile()
{
SaveFileDialog saveFileDialog new SaveFileDialog();
"Execl files (*.xls)|*.xls";
0;
true;
true;
saveFileDialog.Title "Excel文件另存為...";
if (() ! DialogResult.OK)
return;
string myExcel ;
FileStream file new FileStream(myExcel, );
hssfworkbook.Write(file);
();
}
6. 打開所存儲的EXCEL文件
即是從SQL數(shù)據(jù)中導(dǎo)入的內(nèi)容。
7. NPOI控件
NPOI,顧名思義,就是POI的.NET版本。那POI又是什么呢?POI是一套用Java寫成的庫,能夠幫助開發(fā)者在沒有安裝微軟Office的情況下讀寫Office 97-2003的文件,支持的文件格式包括xls、doc、ppt等。筆者以上所用的npoi版本為1.2.5版本(部分自定義修改了),對于具體npoi相關(guān)資料可以從網(wǎng)上查找獲得。