在ASP.NET中将数据直接输出成Excel内容
2024-07-10 12:57:12
供稿:网友
本文实现了将数据库中的数据直接输出到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