利用ASP.NET來訪問Excel文檔
2024-07-10 12:58:22
供稿:網友
 
利用asp.net來訪問excel文檔 
 
  excel是microsoft公司的office套件中的一種軟件,他主要用來處理電子表格。excel以界面友好、處理數據迅速等優點獲得廣大辦公人員的歡迎。所以很多文檔就以excel的形式保存了下來。對于程序設計人員,在程序設計中,我們往往要訪問excel文件來獲得數據。但由于excel文件不是標準數據庫,所以用程序語言來訪問他就比較困難。
  asp.net是microsoft公司極力推薦的一個產品,作為.net framework框架中的一個重要組成部分,他主要用于web設計。全新的設計理念、強大功能使得asp.net正在受到越來越多的程序設計人員的歡迎。也正是asp.net的強大的功能才使得訪問excel文檔成為了一件相對簡單的事情。下面就通過一個例子來具體說明asp.net是如何訪問的excel文檔的。
  一. 程序設計及運行環境
  (1).windows 2000 professional
  (2)..net framework sdk beta 2
  (3).microsoft access data component 2.6(madc2.6)
  二. 具體的設計思路
  (1).獲得要訪問的excel文件名稱
  (2).讀出excel文件的內容
  (3).用datagrid格式顯示出來
  下面就一些關鍵的步驟來具體說明。
  三. 程序設計的關鍵步驟
  (1).為了方便,我們就把excel文件假定在c盤的根目錄,名稱為test.xls。
  (2).為了讀取excel文件,我們必須了解一個名稱空間(namespace)--system.data.oledb。system.data.oledb中有三個對象分別是oledbconnection,oledbcommand,oledbdataadapter。我們就是通過他們來訪問excel文件的。
  i> oledbconnection對象主要是提供連接方式。
  ii> oledbcommand對象提供對目標的具體操作方法。
  iii>oledbdataadapter對象是對對象進行不同操作后的返回數據集。
  為了讀取c盤的test.xls只要以下語句就可以完成:
dim myoledbconnection as oledbconnection = new 
   oledbconnection("provider=microsoft.jet.oledb.4.0;" & _
   "data source=c:/test.xls;" & _
   "extended properties=""excel 8.0;""")
dim myoledbcommand as oledbcommand = new oledbcommand("select * 
   from [sheet1$]",myoledbconnection) '如果你想讀出sheet2的內容
   ,把sheet1$改成sheet2$即可
dim mydata as oledbdataadapter= new 
   oledbdataadapter(myoledbcommand) 
  (3).讀出excel文件內容后,就要把他用datagrid顯示出來。為了顯示,還要用另外一個名稱空間--system.data。他里面有個對象dataset,他可以和datagrid進行數據幫定,從而以datagrid形式顯示數據。而此時讀出的數據集并不是以對象dataset來表現的,這就需要進行轉換,好在oledbdataadapter對象提供了一個方法--fill,可以完成轉換。具體程序如下:
dim mydataset as new dataset()
mydata.fill(mydataset) 
'完成從oledbdataadapter對象到dataset的轉換
datagrid1.datasource = mydataset.tables(0).defaultview
datagrid1.databind() '完成數據幫定,顯示數據 
  四. 具體的源代碼:
<%@ page language="vb" %>
<%@ import namespace="system.data" %>
<%@ import namespace="system.data.oledb" %> 
<script language="vb" runat="server">
sub page_load(sender as object, e as eventargs)
dim mydataset as new dataset()
dim myoledbconnection as oledbconnection = new oledbconnection("provider=microsoft.jet.oledb.4.0;" & _
"data source=c:/2.xls;" & _
"extended properties=""excel 8.0;""")
dim myoledbcommand as oledbcommand = new oledbcommand("select * from [sheet1$]",myoledbconnection)
dim mydata as oledbdataadapter= new oledbdataadapter(myoledbcommand)
mydata.fill(mydataset)
datagrid1.datasource = mydataset.tables(0).defaultview
datagrid1.databind()
end sub
</script>
<html>
<head></head>
<body>
<asp:label id="l1" runat="server">讀取c盤根目錄下的test.xls文件,并以datagrid的形式顯示出來</asp:label>
<asp:datagrid id=datagrid1 runat="server"/>
</body>
</html> 
  五. 總結
  至此一個讀取excel文件的asp.net程序就全部完成了,如果你的機器達到以上提到的運行環境,那就建立一個指向此asp.net程序的web虛擬目錄,隨便拷貝一個excel文件到c盤的根目錄,在瀏覽器運行一下程序,你就可以看到excel文件內容了。