ASP SQL数据库导出到excel

zhx730621 2023-09-17 11:21:49

编写了一个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>

 

...全文
成就一亿技术人!
拼手气红包 100.00元
793 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
shoppo0505 2023-12-26
  • 打赏
  • 举报
回复

python写一下就好了,就十多行代码

shoppo0505 2023-12-26
  • 打赏
  • 举报
回复

python写一下就好了,就十多行代码

daigua1987 2023-09-22
  • 打赏
  • 举报
回复

<%
' 创建一个 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答案

吉普赛的歌 版主 2023-09-17
  • 打赏
  • 举报
回复

100元红包,这么快抢完了,哈哈哈。
建议改成 aspx 吧, 用NPOI来完成。
或者导出为 csv 。

猫头虎 2023-09-17
  • 打赏
  • 举报
回复
超出Excel表格最大行数
zhx730621 2023-09-17
  • 举报
回复
@猫头虎 最大行数65535,我只有23000左右,应该没有超
猫头虎 2023-09-17
  • 举报
回复
@zhx730621 看一下文件后缀,两种文件后缀的存储量不同。
zhx730621 2023-09-17
  • 打赏
  • 举报
回复

我试了一下。如果数据条数小于4500条,可以正常导出,如果大于4500条,无法导出,这个如何修改?

  • 打赏
  • 举报
回复
gtpchat问一问

34,597

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧