34,499
社区成员




编写了一个asp 文件,将SQL数据库导出到excel,如果选择有条件筛选,可以正常导出,但是如果不选择筛选,想把数据库全部导出,数据大概24000条左右,提示如下图,请问问题在哪里?程序如何修改?谢谢,急等
<!-- #include file="../inc/key.asp" -->
<!-- #include file="../inc/conn.asp" -->
<%
nowfilename=replace(replace(replace(now,":","")," ",""),"/","")
Response.Buffer = True
Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "content-disposition", "inline; filename = "&nowfilename&".xls"
%>
<html>
<head>
</head>
<body>
<%
'取得搜索关键字
nowsearch1=request("search1")
nowkeyword1=request("keyword1")
nowsearch2=request("search2")
nowkeyword2=request("keyword2")
set rs_clsb =server.createobject("ADODB.RecordSet")
sql_clsb="select * from clsbtz"
if nowsearch1<>"" and nowkeyword1<>"" then
if nowsearch2<>"" and nowkeyword2<>"" then
sql_clsb=sql_clsb&" where "&nowsearch1&" like '%"&nowkeyword1&"%' and "&nowsearch2&" like '%"&nowkeyword2&"%'"
else
sql_clsb=sql_clsb&" where "&nowsearch1&" like '%"&nowkeyword1&"%'"
end if
else
if nowsearch2<>"" and nowkeyword2<>"" then
sql_clsb=sql_clsb&" where "&nowsearch2&" like '%"&nowkeyword2&"%'"
end if
end if
if request("order1")<>"" then
sql_clsb=sql_clsb&" order by zylb "&request("order1")
elseif request("order2")<>"" then
sql_clsb=sql_clsb&" order by clsbmc "&request("order2")
elseif request("order3")<>"" then
sql_clsb=sql_clsb&" order by xhgg "&request("order3")
elseif request("order4")<>"" then
sql_clsb=sql_clsb&" order by clfw "&request("order4")
elseif request("order5")<>"" then
sql_clsb=sql_clsb&" order by zqd "&request("order5")
elseif request("order6")<>"" then
sql_clsb=sql_clsb&" order by sccj"&request("order6")
elseif request("order7")<>"" then
sql_clsb=sql_clsb&" order by sbbh "&request("order7")
else
sql_clsb=sql_clsb
end if
rs_clsb.open sql_clsb,conn,1,1
%>
<table width="100%" border="1" align="center" cellpadding="2" cellspacing="0">
<tr>
<th>序号</th>
<th>专业类别</th>
<th>测量设备种类</th>
<th>测量设备名称</th>
<th>型号规格</th>
<th>测量范围</th>
<th>准确度</th>
<th>制造厂商</th>
<th>设备编号</th>
<th>附件</th>
<th>使用部门</th>
<th>使用地点</th>
<th>使用人</th>
<th>设备领取日期</th>
<th>检定方式</th>
<th>检定部门</th>
<th>检定周期</th>
<th>检定月份</th>
<th>ABC</th>
<th>检定日期</th>
<th>有效日期</th>
<th>证书报告号</th>
<th>设备状态</th>
</tr>
<%
i=0
do while rs_clsb.eof=false
i=i+1
%>
<tr>
<td align="center"><%=i%></td>
<td align="center"><%="'"&rs_clsb("zylb")%></td>
<td align="center"><%="'"&rs_clsb("clsbzl")%></td>
<td align="center"><%="'"&rs_clsb("clsbmc")%></td>
<td align="center"><%="'"&rs_clsb("xhgg")%></td>
<td align="center"><%="'"&rs_clsb("clfw")%></td>
<td align="center"><%="'"&rs_clsb("zqd")%></td>
<td align="center"><%="'"&rs_clsb("sccj")%></td>
<td align="center"><%="'"&rs_clsb("sbbh")%></td>
<td align="center"><%="'"&rs_clsb("fj")%></td>
<td align="center"><%="'"&rs_clsb("sybm")%></td>
<td align="center"><%="'"&rs_clsb("sydd")%></td>
<td align="center"><%="'"&rs_clsb("syr")%></td>
<td align="center"><%=rs_clsb("sblqrq")%></td>
<td align="center"><%="'"&rs_clsb("jdfs")%></td>
<td align="center"><%="'"&rs_clsb("jdbm")%></td>
<td align="center"><%="'"&rs_clsb("jdzq")%></td>
<td align="center"><%="'"&rs_clsb("jdyf")%></td>
<td align="center"><%="'"&rs_clsb("abc")%></td>
<td align="center"><%=rs_clsb("jdrq")%></td>
<td align="center"><%=rs_clsb("yxrq")%></td>
<td align="center"><%="'"&rs_clsb("zsh")%></td>
<td align="center"><%="'"&rs_clsb("sbzt")%></td>
</tr>
<%
rs_clsb.movenext
loop
%>
</table>
</body>
</html>
<%
' 创建一个 Excel 对象
Set objExcel = Server.CreateObject("Excel.Application")
' 创建一个工作簿
Set objWorkbook = objExcel.Workbooks.Add
' 创建一个工作表
Set objWorksheet = objWorkbook.Worksheets(1)
' 设置工作表的列标题
objWorksheet.Cells(1, 1).Value = "列1标题"
objWorksheet.Cells(1, 2).Value = "列2标题"
' 继续添加其他列标题...
' 连接到数据库
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Provider=SQLOLEDB;Data Source=数据库服务器;Initial Catalog=数据库名称;User ID=用户名;Password=密码;"
' 执行 SQL 查询并将结果填充到工作表中
Set objRS = objConn.Execute("SELECT 列1, 列2 FROM 表名")
row = 2 ' 从第二行开始
Do While Not objRS.EOF
objWorksheet.Cells(row, 1).Value = objRS("列1")
objWorksheet.Cells(row, 2).Value = objRS("列2")
' 继续添加其他列...
row = row + 1
objRS.MoveNext
Loop
' 关闭数据库连接
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
' 保存 Excel 文件
objExcel.ActiveWorkbook.SaveAs "C:\导出文件路径\导出文件名.xlsx"
' 关闭 Excel 对象
objExcel.Quit
Set objWorksheet = Nothing
Set objWorkbook = Nothing
Set objExcel = Nothing
%>
上述代码会创建一个 Excel 文件,然后连接到数据库,执行 SQL 查询,并将结果填充到 Excel 工作表中。最后,将 Excel 文件保存到指定的路径。确保替换代码中的数据库连接信息、SQL 查询、列标题和文件保存路径以适应你的实际需求。
请注意,上述示例是用 ASP 编写的,你需要在支持 ASP 的 Web 服务器上运行它,如 IIS。确保服务器上已经安装了 Excel 应用程序,以便创建和保存 Excel 文件。
GTP答案
100元红包,这么快抢完了,哈哈哈。
建议改成 aspx 吧, 用NPOI来完成。
或者导出为 csv 。
我试了一下。如果数据条数小于4500条,可以正常导出,如果大于4500条,无法导出,这个如何修改?