asp.net 操作excel的實(shí)現(xiàn)代碼
Excel是Microsoft公司的Office套件中的一種軟件,他主要用來處理電子表格。Excel以界面友好、處理數(shù)據(jù)迅速等優(yōu)點(diǎn)獲得廣大辦公人員的歡迎。所以很多文檔就以Excel的形式保存了下來。對(duì)于程序設(shè)計(jì)人員,在程序設(shè)計(jì)中,我們往往要訪問Excel文件來獲得數(shù)據(jù)。但由于Excel文件不是標(biāo)準(zhǔn)數(shù)據(jù)庫(kù),所以用程序語(yǔ)言來訪問他就比較困難。
ASP.NET是Microsoft公司極力推薦的一個(gè)產(chǎn)品,作為.NET FrameWork框架中的一個(gè)重要組成部分,他主要用于Web設(shè)計(jì)。全新的設(shè)計(jì)理念、強(qiáng)大功能使得ASP.NET正在受到越來越多的程序設(shè)計(jì)人員的歡迎。也正是ASP.NET的強(qiáng)大的功能才使得訪問Excel文檔成為了一件相對(duì)簡(jiǎn)單的事情。下面就通過一個(gè)例子來具體說明ASP.NET是如何訪問的Excel文檔的。
一. 程序設(shè)計(jì)及運(yùn)行環(huán)境
(1).Windows 2000 Professional
(2)..Net Framework SDK Beta 2
(3).Microsoft Access Data Component 2.6(MADC2.6)
二. 具體的設(shè)計(jì)思路
(1).獲得要訪問的Excel文件名稱
(2).讀出Excel文件的內(nèi)容
(3).用DataGrid格式顯示出來
下面就一些關(guān)鍵的步驟來具體說明。
三. 程序設(shè)計(jì)的關(guān)鍵步驟
(1).為了方便,我們就把Excel文件假定在C盤的根目錄,名稱為test.xls。
(2).為了讀取Excel文件,我們必須了解一個(gè)名稱空間(NameSpace)--System.Data.Oledb。System.Data.Oledb中有三個(gè)對(duì)象分別是OleDbConnection,OleDbCommand,OledbDataAdapter。我們就是通過他們來訪問Excel文件的。
i> OleDbConnection對(duì)象主要是提供連接方式。
ii> OleDbCommand對(duì)象提供對(duì)目標(biāo)的具體操作方法。
iii>OledbDataAdapter對(duì)象是對(duì)對(duì)象進(jìn)行不同操作后的返回?cái)?shù)據(jù)集。
為了讀取C盤的test.xls只要以下語(yǔ)句就可以完成:
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的內(nèi)容
,把Sheet1$改成Sheet2$即可
Dim myData As OledbDataAdapter= New
OledbDataAdapter(myOleDbCommand)
(3).讀出Excel文件內(nèi)容后,就要把他用DataGrid顯示出來。為了顯示,還要用另外一個(gè)名稱空間--System.Data。他里面有個(gè)對(duì)象DataSet,他可以和DataGrid進(jìn)行數(shù)據(jù)幫定,從而以DataGrid形式顯示數(shù)據(jù)。而此時(shí)讀出的數(shù)據(jù)集并不是以對(duì)象DataSet來表現(xiàn)的,這就需要進(jìn)行轉(zhuǎn)換,好在OledbDataAdapter對(duì)象提供了一個(gè)方法--Fill,可以完成轉(zhuǎn)換。具體程序如下:
Dim myDataset As New DataSet()
myData.Fill(myDataset)
'完成從OledbDataAdapter對(duì)象到DataSet的轉(zhuǎn)換
DataGrid1.DataSource = myDataset.Tables(0).DefaultView
DataGrid1.DataBind() '完成數(shù)據(jù)幫定,顯示數(shù)據(jù)
四. 具體的源代碼:
<%@ 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:.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>
五. 總結(jié)
至此一個(gè)讀取Excel文件的ASP.NET程序就全部完成了,如果你的機(jī)器達(dá)到以上提到的運(yùn)行環(huán)境,那就建立一個(gè)指向此ASP.NET程序的Web虛擬目錄,隨便拷貝一個(gè)Excel文件到C盤的根目錄,在瀏覽器運(yùn)行一下程序,你就可以看到Excel文件內(nèi)容了。
相關(guān)文章
在asp.net下實(shí)現(xiàn)Option條目中填充前導(dǎo)空格的方法
在asp.net下實(shí)現(xiàn)Option條目中填充前導(dǎo)空格的方法...2007-03-03
ASP.NET實(shí)現(xiàn)可以縮放和旋轉(zhuǎn)的圖片預(yù)覽頁(yè)效果
本文詳細(xì)介紹了如何在ASP.NET?WebForms中實(shí)現(xiàn)一個(gè)功能豐富的圖片預(yù)覽頁(yè)面,通過結(jié)合HTML、CSS和JavaScript,用戶可以方便地對(duì)圖片進(jìn)行放大、縮小以及旋轉(zhuǎn)操作,感興趣的朋友跟隨小編一起看看吧2024-08-08
.NET中RDLC循環(huán)處理數(shù)據(jù)的應(yīng)用分析
本篇文章介紹了,.NET中RDLC循環(huán)處理數(shù)據(jù)的應(yīng)用分析。需要的朋友參考下2013-05-05
vb.net借助剪貼板將圖片導(dǎo)入excel內(nèi)
這篇文章主要介紹了vb.net將圖片導(dǎo)入到excel的方法,只要借助剪貼板將圖片粘貼到excel中就可以完成了,大家參考使用吧2014-01-01
Win 2000下ASP.NET開發(fā)環(huán)境的配置
Win 2000在默認(rèn)情況下是不支持ASP.NET的。必須對(duì)它進(jìn)行一個(gè)環(huán)境的配置,本文將圖文介紹,在配置過程中遇到困難的朋友可以參考下2012-11-11
ASP.NET中Onclick與OnClientClick遇到的問題
本文主要介紹了ASP.NET中Onclick與OnClientClick遇到的問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04
.net開發(fā)中幾個(gè)重要的認(rèn)識(shí)誤區(qū)小結(jié)
.net如今已經(jīng)很流行,成為趕時(shí)髦的程序員的首選。但是,大量剛剛接觸.net的程序員的確存在一定的認(rèn)識(shí)誤區(qū),這里先介紹一部分。2010-04-04
asp.net(c#)下讀取word文檔的方法小結(jié)
asp.net(c#)下讀取word文檔的方法小結(jié),需要的朋友可以參考下。2011-07-07

