程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> 使用asp.net讀取並顯示excel數據

使用asp.net讀取並顯示excel數據

編輯:.NET實例教程

Microsoft Office Excel是一個很好的電子表格應用程序,在本文中,it同學會將教給你看到如何使用ASP.Net從Excel電子表格讀取並顯示顯示數據。

我們的ASP頁面將在遠程服務器上,來讀取我們的桌面Excel文件。首先,我們必須把它上傳到遠程服務器,然後retrive數據。因此,我們首先設計一個表格,上傳到服務器。我們必須從文件retrive數據,再一次,所以我們將重新命名Excel,然後上傳。

  1. <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.ASPx.vb" Inherits="_Default" %> 
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xHtml1-transitional.dtd"> 
  3. <html XMLns="http://www.w3.org/1999/xHtml"> 
  4. <head runat="server"> 
  5. <title>Read and Display Data From an Excel File (.xsl or .xlsx) in ASP.Net</title> 
  6. <style type="text/CSS">   
  7. tr.sectiontableentry1 td,  
  8. tr.sectiontableentry2 td {  
  9. padding: 4px;  
  10. }  
  11. tr.sectiontableentry1 td {  
  12. padding: 8px 5px;  
  13. background: url(hline.gif) repeat-x bottom;  
  14. }  
  15. tr.sectiontableentry2 td {  
  16. padding: 8px 5px;  
  17. background: url(hline.gif) repeat-x bottom #F2F2F2;  
  18. }  
  19. </style> 
  20. </head> 
  21. <body> 
  22. <form id="form1" runat="server"> 
  23. <div> 
  24. <table  align="center" border="0"> 
  25. <tbody> 
  26. <tr> 
  27. <td> 
  28. <strong>Please Select Excel file containing job details…</strong> 
  29. </td> 
  30. </tr> 
  31. <tr> 
  32. <td> 
  33. <div > 
  34. <asp:FileUpload ID="txtFilePath" runat="server"></ASP:FileUpload>&nbsp;&nbsp;  
  35. <ASP:Button ID="btnUpload" runat="server" Text="Upload" /><br />   
  36. <ASP:Label ID="lblMessage" runat="server" Visible="False" Font-Bold="True"   
  37. ForeColor="#009933"></ASP:Label> 
  38. </div> 
  39. </td> 
  40. </tr> 
  41. <tr> 
  42. <td> 
  43. <ASP:GridVIEw ID="dtgJobs" runat="server"> 
  44. <RowStyle CSSClass="sectiontableentry2" /> 
  45. <AlternatingRowStyle CSSClass="sectiontableentry1" /> 
  46. </ASP:GridVIEw>   
  47. </td> 
  48. </tr> 
  49. </tbody> 
  50. </table> 
  51. </div> 
  52. </form> 
  53. </body> 
  54. </Html> 

連接使用Microsoft OLE DB提供的Excel jet

在Microsoft OLE DB提供用於Jet(聯合發動機技術站是一個數據庫引擎)提供的OLE DB接口,Microsoft Access數據庫,並允許SQL Server 2005和更高分布式查詢來查詢Access數據庫和Excel電子表格。我們將連接到Microsoft Excel工作簿使用Jet 4.0的Microsoft OLE DB提供,

讀取數據,然後顯示在GridVIEw中的數據。

xlsx(Excel 2007年)載有提供者Microsoft.ACE.OLEDB.12.0。這是新的Access數據庫引擎的OLE DB驅動程序,也是閱讀Excel 2003的能力。我們將用它來閱讀xlsx(Excel 2007年)的數據。

我們有一個Excel文件,其內容如下所示。注意:此表名稱必須相同,意味著,如果想讀的Sheet1的數據。你必須小心,同時書面方式的SQL查詢,因為選擇*從[Sheet1的$]和SELECT *從[Sheet1的$]是兩個不同的查詢。

使用asp.net讀取excel

VB.Net CODE:

  1. Protected Sub btnUpload_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnUpload.Click  
  2. If (txtFilePath.HasFile) Then 
  3. Dim conn As OleDbConnection  
  4. Dim cmd As OleDbCommand  
  5. Dim da As OleDbDataAdapter  
  6. Dim ds As DataSet  
  7. Dim query As String 
  8. Dim connString As String = "" 
  9. Dim strFileName As String = DateTime.Now.ToString("ddMMyyyy_HHmmss")  
  10. Dim strFileType As String = System.IO.Path.GetExtension(txtFilePath.FileName).ToString().ToLower()  
  11.    
  12. ‘Check file type  
  13. If strFileType.Trim = ".xls" Or strFileType.Trim = ".xlsx" Then 
  14. txtFilePath.SaveAs(Server.MapPath("~/UploadedExcel/" & strFileName & strFileType))  
  15. Else 
  16. lblMessage.Text = "Only Excel files allowed" 
  17. lblMessage.ForeColor = Drawing.Color.Red  
  18. lblMessage.Visible = True 
  19. Exit Sub 
  20. End If 
  21.    
  22. Dim strNewPath As String = Server.MapPath("~/UploadedExcel/" & strFileName & strFileType)  
  23.    
  24. ‘Connection String to Excel Workbook  
  25. If strFileType.Trim = ".xls" Then 
  26. connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strNewPath & ";Extended PropertIEs=""Excel 8.0;HDR=Yes;IMEX=2""" 
  27. ElseIf strFileType.Trim = ".xlsx" Then 
  28. connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strNewPath & ";Extended PropertIEs=""Excel 12.0;HDR=Yes;IMEX=2""" 
  29. End If 
  30.    
  31. query = "SELECT * FROM [Sheet1$]" 
  32.    
  33. ‘Create the connection object   
  34. conn = New OleDbConnection(connString)  
  35. ‘Open connection  
  36. If conn.State = ConnectionState.Closed Then conn.Open()  
  37. ‘Create the command object  
  38. cmd = New OleDbCommand(query, conn)  
  39. da = New OleDbDataAdapter(cmd)  
  40. ds = New DataSet()  
  41. da.Fill(ds)  
  42.    
  43. grvExcelData.DataSource = ds.Tables(0)  
  44. grvExcelData.DataBind()  
  45.    
  46. da.Dispose()  
  47. conn.Close()  
  48. conn.Dispose()  
  49. Else 
  50. lblMessage.Text = "Please select an Excel file first" 
  51. lblMessage.ForeColor = Drawing.Color.Red  
  52. lblMessage.Visible = True 
  53. End If 
  54. End Sub   

C#.Net Code

  1. protected void btnUpload_Click(object sender, EventArgs e)  
  2. {  
  3. if ((txtFilePath.HasFile))  
  4. {  
  5.    
  6. OleDbConnection conn = new OleDbConnection();  
  7. OleDbCommand cmd = new OleDbCommand();  
  8. OleDbDataAdapter da = new OleDbDataAdapter();  
  9. DataSet ds = new DataSet();  
  10. string query = null;  
  11. string connString = "";  
  12. string strFileName = DateTime.Now.ToString("ddMMyyyy_HHmmss");  
  13. string strFileType = System.IO.Path.GetExtension(txtFilePath.FileName).ToString().ToLower();  
  14.    
  15. //Check file type  
  16. if (strFileType == ".xls" || strFileType == ".xlsx")  
  17. {  
  18. txtFilePath.SaveAs(Server.MapPath("~/UploadedExcel/" + strFileName + strFileType));  
  19. }  
  20. else 
  21. {  
  22. lblMessage.Text = "Only Excel files allowed";  
  23. lblMessage.ForeColor = System.Drawing.Color.Red;  
  24. lblMessage.Visible = true;  
  25. return;  
  26. }  
  27.    
  28. string strNewPath = Server.MapPath("~/UploadedExcel/" + strFileName + strFileType);  
  29.    
  30. //Connection String to Excel Workbook  
  31. if (strFileType.Trim() == ".xls")  
  32. {  
  33. connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strNewPath + ";Extended PropertIEs=\"Excel 8.0;HDR=Yes;IMEX=2\"";  
  34. }  
  35. else if (strFileType.Trim() == ".xlsx")  
  36. {  
  37. connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strNewPath + ";Extended PropertIEs=\"Excel 12.0;HDR=Yes;IMEX=2\"";  
  38. }  
  39.    
  40. query = "SELECT * FROM [Sheet1$]";  
  41. //query = "SELECT [Country],[Capital] FROM [Sheet1$] WHERE [Currency]=’Rupee’"  
  42. //query = "SELECT [Country],[Capital] FROM [Sheet1$]"  
  43.    
  44. //Create the connection object  
  45. conn = new OleDbConnection(connString);  
  46. //Open connection  
  47. if (conn.State == ConnectionState.Closed) conn.Open();  
  48. //Create the command object  
  49. cmd = new OleDbCommand(query, conn);  
  50. da = new OleDbDataAdapter(cmd);  
  51. ds = new DataSet();  
  52. da.Fill(ds);  
  53.    
  54. grvExcelData.DataSource = ds.Tables[0];  
  55. grvExcelData.DataBind();  
  56.    
  57. lblMessage.Text = "Data retrIEved successfully! Total Records:" + ds.Tables[0].Rows.Count;  
  58. lblMessage.ForeColor = System.Drawing.Color.Green;  
  59. lblMessage.Visible = true;  
  60.    
  61. da.Dispose();  
  62. conn.Close();  
  63. conn.Dispose();  
  64. }  
  65. else 
  66. {  
  67. lblMessage.Text = "Please select an Excel file first";  
  68. lblMessage.ForeColor = System.Drawing.Color.Red;  
  69. lblMessage.Visible = true;  
  70. }  
  71. }   

ittxh.cn使用上面的代碼進行測試,得到的結果如下所示:

使用asp.net讀取excel

以上就是使用ASP.Net讀取並顯示Excel數據

本文轉自it同學會,轉載請保留。原文地址:http://www.ittxh.cn/chengxukaifa/_NETjiaocheng/18.Html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved