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

ExcelExport.aspx
  
  < %@ Page Language="vb" AutoEventWireup="false" Codebehind="ExcelExport.aspx.vb"
  Inherits="aspxWeb.mengxianhui.com.ExcelExport"%>
  < !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  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值