在ASP.NET中将数据直接输出成Excel内容

博客涉及Excel导出相关内容,使用ASP.NET技术,关联datagrid、sql server、dataset等,文件为ExcelExport.aspx.vb ,与信息技术领域的后端开发和数据处理相关。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
  <HEAD>
    <title>ExcelExport</title>
    <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
    <meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
  </HEAD>
  <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
      <asp:datagrid id="DataGrid1" runat="server" CellPadding="4" BackColor="White"
       BorderColor="#CC9966" BorderWidth="1px" BorderStyle="None" Width="100%" Height="100%"
        Font-Size="9pt" Font-Names="宋体">
        <SelectedItemStyle Font-Bold="True" ForeColor="#663399" BackColor="#FFCC66"></SelectedItemStyle>
        <AlternatingItemStyle BackColor="#FFCC99"></AlternatingItemStyle>
        <ItemStyle BorderWidth="2px" ForeColor="#330099" BorderStyle="Solid"
         BorderColor="Black" BackColor="White"></ItemStyle>
        <HeaderStyle Font-Bold="True" HorizontalAlign="Center" BorderWidth="2px"
         ForeColor="#FFFFCC" BorderStyle="Solid" BorderColor="Black" BackColor="#990000"></HeaderStyle>
      </asp:datagrid>
    </form>
  </body>
</HTML>

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值