打印本文 打印本文 关闭窗口 关闭窗口
在ASP.NET中将数据直接输出成Excel格式
作者:武汉SEO闵涛  文章来源:敏韬网  点击数858  更新时间:2009/4/23 10:27:35  文章录入:mintao  责任编辑:mintao
138d   本文实现了将数据库中的数据直接输出到Excel文件格式并在浏览器里输出。下面就是实现的例子:

  查看例子

  ExcelExport.aspx

  ExcelExport.aspx.vb

Public Class ExcelExport
Inherits System.Web.UI.Page
Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
#Region " Web 窗体设计器生成的代码 "
'该调用是 Web 窗体设计器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MyBase.Init
 'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
 '不要使用代码编辑器修改它。
 InitializeComponent()
End Sub

#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles MyBase.Load
 '在此处放置初始化页的用户代码
 ' 定义是否是 SQL Server 数据库,这里为False
 Dim blnIsSQLServer As System.Boolean = False
 Dim strSQL As String
 Dim objDataset As New DataSet()
 Dim objConn As Object
 Dim strCnn As String
 If blnIsSQLServer Then
  strCnn = "User ID=sa;Initial Catalog=Northwind;Data Source=.\NetSDK;"
  objConn = New System.Data.SqlClient.SqlConnection(strCnn)
  objConn.Open()
  Dim objAdapter As New System.Data.SqlClient.SqlDataAdapter()
  strSQL = "Select * from customers where country='USA'"
  objAdapter.SelectCommand = New System.Data.SqlClient.SqlCommand(strSQL, objConn)
  objAdapter.Fill(objDataset)
 Else
  strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("Test.mdb")
  objConn = New System.Data.OleDb.OleDbConnection(strCnn)
  objConn.Open()
  Dim objAdapter As New System.Data.OleDb.OleDbDataAdapter()
  strSQL = "Select Top 10 Title From Document"
  objAdapter.SelectCommand = New System.Data.OleDb.OleDbCommand(strSQL, objConn)
  objAdapter.Fill(objDataset)
 End If
 Dim oView As New DataView(objDataset.Tables(0))
 DataGrid1.DataSource = oView
 DataGrid1.DataBind()
 objConn.Close()
 objConn.Dispose()
 objConn = Nothing
 If Request.QueryString("bExcel") = "1" Then
  Response.ContentType = "application/vnd.ms-excel"
  ' 从Content-Type header中去除charset设置
  Response.Charset = ""
  ' 关闭 ViewState
  Me.EnableViewState = False
  Dim tw As New System.IO.StringWriter()
  Dim hw As New System.Web.UI.HtmlTextWriter(tw)
  ' 获取control的HTML
  DataGrid1.RenderControl(hw)
  ' 把HTML写回浏览器
  Response.Write(tw.ToString())
  Response.End()
 End If
End Sub
End Class

 

15e

打印本文 打印本文 关闭窗口 关闭窗口