通過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)上查找獲得。