Javasp

Thursday, May 20, 2004

利用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 drive (C:\),名稱為test.xls。
  (2) 為了讀取Excel文件,我們必須瞭解一個名稱空間(Namespace) - System.Data.Oledb。

  System.Data.Oledb中有三個對像分別是OleDbConnection,OleDbCommand,OledbDataAdapter。我們就是通過他們來訪問Excel文件。

  <1> OleDbConnection對象主要是提供連接方式。
  <2> OleDbCommand對象提供對目標的具體操作方法。
  <3> OledbDataAdapter對象是對對像進行不同操作後的返回數據集。

  (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 drive的test.xls文件</asp:label>
<asp:DataGrid id=DataGrid1 runat="server"/>
</body>
</html>

五 總結

  至此一個讀取Excel文件的ASP.NET程序便完成了,如果你的機器達到以上提到的運行環境,那你只需建立一個指向此ASP.NET程序的Web虛擬目錄,隨便將一個Excel文件放到C drive,在瀏覽器運行一下程序,便可以看到Excel文件內容了。

0 Comments:

Post a Comment

<< Home