HOW TO:使用 ASP.NET、ADO.NET 及 Visual C# .NET 查詢及顯示 Excel 資料

文章翻譯 文章翻譯
文章編號: 306572 - 檢視此文章適用的產品。
本文曾發行於 CHT306572
全部展開 | 全部摺疊

在此頁中

結論

本文將逐步告訴您,如何使用 Visual C# .NET 透過 ASP.NET (.aspx) 網頁顯示 Excel 工作表的資料。

建立範例 Excel 工作表

  1. 啟動 Microsoft Excel,然後建立新工作表。
  2. 將下列資訊新增至新的工作表以建立簡單的 Excel 資料庫:

    摺疊此表格展開此表格
    AB
    1FirstNameLastName
    2ScottBishop
    3KatieJordan

    注意:雖然本範例的資料從 A1 儲存格開始,但是您可以在工作表內任何相鄰的儲存格加入這些資料。
  3. 將資料所在的資料列和資料行反白。
  4. [插入] 功能表上,指向 [名稱],然後按一下 [定義]
  5. [現有名稱] 文字方塊中,輸入 myRange1,然後按一下 [確定]
  6. [檔案] 功能表,按一下 [儲存檔案]。在 [儲存位置] 清單中,選取 Web 伺服器根目錄 (通常是 C:\InetPub\Wwwroot\)。在 [檔案名稱] 文字方塊中,輸入 ExcelData.xls。按一下 [確定]
  7. [檔案] 功能表上,按一下 [結束]

使用 Visual C# .NET 建立 ASP.NET 範例

此程式碼範例將示範如何查詢及顯示 Excel 工作表中的資訊。下列程式碼使用您在前一小節建立的工作表。
  1. 開啟 Microsoft Visual Studio .NET。接著會顯示 Visual Studio .NET 整合式開發環境 (IDE)。
  2. [檔案] 功能表上,指向 [新增],然後按一下 [專案]
  3. [新增專案] 對話方塊中,[專案類型] 下面,按一下 [Visual C# 專案]。在 [範本] 下,按一下 [ASP.NET Web 應用程式]
  4. [新增專案] 對話方塊中,找出 [名稱][位置] 文字方塊。請注意,[名稱] 文字方塊無法使用 (顯示為變淡或暗灰色)。[位置] 文字方塊包含下列文字 (或類似文字):
    http://localhost/WebApplication1
    http://localhost/ExcelCSTest 取代 [位置] 文字方塊中的文字,然後按一下 [確定]。這樣就會建立新專案,其包括名為 WebForm1.aspx 的「Web 表單」。
  5. 在 Visual Studio .NET IDE 中找出 [方案總管] 視窗。如果找不到,請按一下 [檢視] 功能表上的 [方案總管]
  6. 在 [方案總管] 中,以滑鼠右鍵按一下 [WebForm1.aspx],然後按一下 [檢視表設計工具] 以顯示網頁外觀的設計工具。此設計工具可以讓您新增控制項並處理網頁的外觀。
  7. 找到工具箱。根據 IDE 選項設定而定,工具箱可能以視窗或按鈕方式出現 (經常出現在 IDE 的左側)。如果您找不到工具箱,請按一下 [檢視] 功能表上的 [工具箱]

    如果工具箱以按鈕方式出現,請將指標移動到按鈕上方以顯示工具箱的內容。
  8. 當「Web 表單」的設計檢視為使用中時,工具箱會分為數個區段,包括 Web Form、元件、HTML 和其他區段。按一下 Web Form 區段。
  9. 在工具箱的 Web Form 區段,按一下 [DataGrid],然後將它拖曳至 WebForm1 的設計工具上。
  10. 以滑鼠右鍵按一下 [WebForm1.aspx],然後按一下 [檢視程式碼] 以顯示程式碼後置網頁來源。
  11. 將下列陳述式新增至程式碼後置網頁的頂端,命名空間區段之上:
    using System.Data.OleDb;
    using System.Data;
    					
  12. 反白下列程式碼,在程式碼上按一下右鍵,然後按一下 [複製]。在 WebForm1.aspx.cs 中,將程式碼貼進 Page_Load 事件中:
    // Create connection string variable. Modify the "Data Source"
    // parameter as appropriate for your environment.
    String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
    	"Data Source=" + Server.MapPath("../ExcelData.xls") + ";" +
    	"Extended Properties=Excel 8.0;";
    
    // Create connection object by using the preceding connection string.
    OleDbConnection objConn = new OleDbConnection(sConnectionString);
    
    // Open connection with the database.
    objConn.Open();
    
    // The code to follow uses a SQL SELECT command to display the data from the worksheet.
    
    // Create new OleDbCommand to return data from worksheet.
    OleDbCommand objCmdSelect =new OleDbCommand("SELECT * FROM myRange1", objConn);
    
    // Create new OleDbDataAdapter that is used to build a DataSet
    // based on the preceding SQL SELECT statement.
    OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
    
    // Pass the Select command to the adapter.
    objAdapter1.SelectCommand = objCmdSelect;
    
    // Create new DataSet to hold information from the worksheet.
    DataSet objDataset1 = new DataSet();
    
    // Fill the DataSet with the information from the worksheet.
    objAdapter1.Fill(objDataset1, "XLData");
    
    // Bind data to DataGrid control.
    DataGrid1.DataSource = objDataset1.Tables[0].DefaultView;
    DataGrid1.DataBind();
    
    // Clean up objects.
    objConn.Close();
    					
  13. [檔案] 功能表中,按一下 [全部儲存],儲存專案檔。
  14. [建置] 功能表中按一下 [建置],以建置專案。準備程式碼後置網頁的程式碼,使其可以被執行。
  15. 在 [方案總管] 中,以右鍵按一下 WebForm1.aspx,然後按一下 [View in Browser] 以執行程式碼。

詳細的程式碼說明

本文的程式碼範例使用 Microsoft Jet OLE DB 提供者存取 Excel 工作表。此程式碼使用下列連接字串連接至工作表:
// Create connection string variable. Modify the "Data Source"
// parameter as appropriate for your environment.
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
	"Data Source=" + Server.MapPath("../ExcelData.xls") + ";" +
	"Extended Properties=Excel 8.0;";
				
就如註解所指出的,您必須修改特定 Excel 工作表的路徑資訊。此外,您也必須設定 Extended Properties 參數的值,以便正確地連接至檔案。

請注意,連接字串使用 Server.MapPath 函數。此函數使用相對於檔案之 Microsoft Internet Information Services (IIS) 的路徑,並傳回該檔案的硬碟路徑。例如,〈建立範例 Excel 工作表〉一節中,您可以在 Web 根目錄中建立 ExcelData.xls (通常位於 C:\Inetpub\Wwwroot)。這樣也會在 Wwwroot 資料夾中建立名為 ExcelCSTest 的子資料夾,並在 ExcelCSTest 資料夾中建立名為 WebForm1.aspx 的檔案。

在此範例中,硬碟上的檔案路徑如下:
     C drive
        - Inetpub
            - Wwwroot (which contains ExcelData.xls)
                - ExcelCSTest (which contains WebForm1.aspx)
				
檔案的 IIS 路徑如下:
     Web Root (which contains ExcelData.xls)
        - ExcelCSTest (which contains WebForm1.aspx)
				
在此範例中,從 WebForm1.aspx 頁面到 ExcelData.xls 檔案的相對路徑為 ../ExcelData.xls。「../」字元會告訴 IIS 往上一層資料夾。因此,程式碼
Server.MapPath("../ExcelData.xls")
				
會傳回下列字串:
C:\Inetpub\Wwwroot\ExcelData.xls
您不需要使用 Server.MapPath。您可以將此資訊硬式編碼至特定路徑,或是使用任何方法提供硬碟上的 Excel 檔案位置。

?考

如需有關如何使用 ASP.NET 存取 Excel 檔案的詳細資訊,請按一下下列的文件編號,檢視 Microsoft Knowledge Base 中的文件:
307029 HOWTO: Transfer XML Data to Microsoft Excel 2002 by Using Visual C# .NET
306023 HOW TO:Transfer Data to an Excel Workbook by Using Visual C# .NET
如需有關使用 ADO.NET 的詳細資訊,請按一下下列的文件編號,檢視「Microsoft 知識庫」中的文件:
306636 HOW TO:使用 ADO.NET 與 Visual C# .NET 連接到資料庫並執行命令
314145 HOW TO:Populate a DataSet Object from a Database by Using Visual C# .NET
307587 HOW TO:Update a Database from a DataSet Object by Using Visual C# .NET
注意:本範例中所提到的公司、組織、產品、網域名稱、電子郵件位址、公司標誌、個人、地點及事件皆屬虛構。Microsoft 無意影射任何真實的公司、組織、產品、網域名稱、電子郵件位址、公司標誌、個人、地點或事件。

屬性

文章編號: 306572 - 上次校閱: 2003年3月7日 - 版次: 1.1
這篇文章中的資訊適用於:
  • Microsoft Excel 2000
  • Microsoft Visual C# .NET (2002)
  • Microsoft FORTRAN Compiler 5.1
關鍵字:?
kbhowto kbhowtomaster kbwebforms kbdatabase KB306572
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com