欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#使用oledb導出數(shù)據(jù)到excel的方法

 更新時間:2016年06月13日 11:14:27   作者:鄭文亮  
這篇文章主要介紹了C#使用oledb導出數(shù)據(jù)到excel的方法,結(jié)合實例形式分析了C#操作oledb導出數(shù)據(jù)的相關技巧與注意事項,需要的朋友可以參考下

本文實例講述了C#使用oledb導出數(shù)據(jù)到excel的方法。分享給大家供大家參考,具體如下:

現(xiàn)在做應用的一半都會碰到數(shù)據(jù)導出的問題,導出到word阿,導出到excel啊,還有其他的什么。當然導出的類型中還是以ms office的居多。最近在做數(shù)據(jù)的轉(zhuǎn)換,也碰到這個導出的問題,當然幸運的是不用碰word,這樣涉及到就只有xml,csv,tsv和最“痛苦”的excel了。

最開始的想法是xml+xslt,搞定全部,但是有一個問題就是excel只有在xp版本之后支持xml,我不能強制的要求用戶都把他們的office升級到xp以后,畢竟人家用的是正版。所以對于這個,還有一個方法,也是網(wǎng)上用的比較多的一種——寫成html然后改后綴名為xls,或者將響應頭里的類型改為Application/Excel(好像是這樣,記不清了,我主要這樣導過word)。當然這樣有些不爽,因為給出的畢竟不是真正的excel,不過還是可以用xslt來做的。

不過在準備這樣做的時候,發(fā)現(xiàn)了一種可以產(chǎn)生至少比html方式更正宗一些的.xls方式,那就是用oledb方式。最先看到的是用oledb方式查excel的數(shù)據(jù),然后就在想既然可以select,那么insert自然也應該可以的。但是試了一下,不行,老是說沒有制定的字段。好來又找了一些資料發(fā)現(xiàn),字段其實也是作為一行數(shù)據(jù)的,這樣問題就可以解決了,下面是我的試驗代碼:

string strCon = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = c:\\2.xls;Extended
Properties=Excel 8.0" ;
OleDbConnection myConn = new OleDbConnection ( strCon ) ;
string createcmd="CREATE TABLE testtable ( ID INTEGER, UserID INTEGER)";
string insertcmd = " INSERT INTO testtable (ID,UserID) VALUES (1,2) " ;
OleDbCommand cmd=new OleDbCommand(createcmd,myConn);
OleDbCommand excmd=new OleDbCommand(insertcmd,myConn);
myConn.Open ( ) ;
cmd.ExecuteNonQuery();
excmd.ExecuteNonQuery();
myConn.Close ( ) ;

這樣就可以了,在連接字符串里的“c:\\2.xls”,如果不存在的話系統(tǒng)會自己建一個,但是這是后的文件是不能正常打開的,要create一個表(如果可以稱為表的話),類型可以指定這沒有問題??赡苡X得奇怪,為什么分為兩句,這其是因為,合為一個commad的命令字符串的時候,我還不知道用哪個字符來區(qū)分,“;”是不行的,這個我還要在msdn上找一下,我是在.net 1.1下測試過的,可以用,就是會多出一行表示字段名的數(shù)據(jù),但是這個應該可以用delete刪掉的。.net 2.0下應該也是可以的,畢竟這是底層提供一個數(shù)據(jù)訪問接口,與你的編程環(huán)境應該沒有太大的關系。對于那個“Excel 8.0”,我只是確定可以,對于更高的沒有試過,準備再看一下。

更多關于C#相關內(nèi)容感興趣的讀者可查看本站專題:《C#中XML文件操作技巧匯總》、《C#常見控件用法教程》、《WinForm控件用法總結(jié)》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#面向?qū)ο蟪绦蛟O計入門教程》及《C#程序設計之線程使用技巧總結(jié)

希望本文所述對大家C#程序設計有所幫助。

相關文章

  • 使用VS2010 C#開發(fā)ActiveX控件(下),完整代碼打包下載

    使用VS2010 C#開發(fā)ActiveX控件(下),完整代碼打包下載

    我們介紹了開發(fā)、打包、發(fā)布、使用ActiveX控件的全過程。在演示程序中,我們沒有調(diào)用串口通信和讀卡器Dll程序,由于我們讀卡器的原始Dll是使用其它語言進行開發(fā)的,對C#來說,是非托管代碼,因此我們還需要在代碼級別進行非托管代碼的安全性設置
    2011-05-05
  • c# Selenium爬取數(shù)據(jù)時防止webdriver封爬蟲的方法

    c# Selenium爬取數(shù)據(jù)時防止webdriver封爬蟲的方法

    這篇文章主要介紹了c# Selenium爬取數(shù)據(jù)時防止webdriver封爬蟲的方法,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01
  • Unity的IPostprocessBuildWithReport實用案例深入解析

    Unity的IPostprocessBuildWithReport實用案例深入解析

    這篇文章主要為大家介紹了Unity的IPostprocessBuildWithReport實用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • C#調(diào)用打印機實現(xiàn)打印

    C#調(diào)用打印機實現(xiàn)打印

    這篇文章介紹了C#調(diào)用打印機實現(xiàn)打印的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#判斷DLL文件是32位還是64位的示例代碼

    C#判斷DLL文件是32位還是64位的示例代碼

    有些時候我們需要判斷一下dll文件是32位還是64位,糾結(jié)該如何操作呢,下面小編通過實例代碼給大家介紹下C#判斷DLL文件是32位還是64位,感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • 淺解關于C#多線程的介紹

    淺解關于C#多線程的介紹

    本篇文章小編將為大家介紹,淺解關于C#的多線程,有需要的朋友可以參考一下
    2013-04-04
  • 淺談C#中簡單的異常引發(fā)與處理操作

    淺談C#中簡單的異常引發(fā)與處理操作

    這篇文章主要介紹了C#中簡單的異常引發(fā)與處理操作,講到了Exception類和try...catch及throw語句的基本使用,需要的朋友可以參考下
    2016-02-02
  • 適用于WebForm Mvc的Pager分頁組件C#實現(xiàn)

    適用于WebForm Mvc的Pager分頁組件C#實現(xiàn)

    這篇文章主要為大家分享了適用于WebForm Mvc的Pager分頁組件,由C#實現(xiàn),感興趣的小伙伴們可以參考一下
    2016-04-04
  • C#多線程Thread使用示例詳解

    C#多線程Thread使用示例詳解

    這篇文章主要為大家詳細介紹了C#多線程Thread使用示例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C#實現(xiàn)向多線程傳參的三種方式實例分析

    C#實現(xiàn)向多線程傳參的三種方式實例分析

    這篇文章主要介紹了C#實現(xiàn)向多線程傳參的三種方式,以實例形式較為詳細的分析了C#多線程及參數(shù)傳遞的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11

最新評論