在好例子网,分享、交流、成长!
您当前所在位置:首页ASP 开发实例ASP/Basic基础 → asp中如何在客户端把查询的结果集在本机上保存为excel

asp中如何在客户端把查询的结果集在本机上保存为excel

ASP/Basic基础

下载此实例
  • 开发语言:ASP
  • 实例大小:5.37KB
  • 下载次数:74
  • 浏览次数:828
  • 发布时间:2015-07-23
  • 实例类别:ASP/Basic基础
  • 发 布 人:jecry
  • 文件格式:.asp
  • 所需积分:0
 相关标签: Excel 客户端 asp c

实例介绍

【实例简介】
【实例截图】
【核心代码】

保存的代码:

<% 
Class   ExcelGen 
Private   objSpreadsheet 
Private   iColOffset 

Private   iRowOffset 
Sub   Class_Initialize() 
Set   objSpreadsheet   =   Server.CreateObject( "OWC.Spreadsheet ") 
'Set   objSpreadsheet   =   Server.CreateObject( "Excel.Application ") 
iRowOffset   =   2 
iColOffset   =   2 
End   Sub 

Sub   Class_Terminate() 
Set   objSpreadsheet   =   Nothing   'Clean   up 
End   Sub 

Public   Property   Let   ColumnOffset(iColOff) 
If   iColOff   >   0   then 
iColOffset   =   iColOff 
Else 
iColOffset   =   2 
End   If 
End   Property 

Public   Property   Let   RowOffset(iRowOff) 
If   iRowOff>   0   then 
iRowOffset   =   iRowOff 
Else 
iRowOffset   =   2 
End   If 
End   Property   

Sub   GenerateWorksheet(objRS) 
'Populates   the   Excel   worksheet   based   on   a   Recordset 's   contents 
'Start   by   displaying   the   titles 
If   objRS.EOF   then   Exit   Sub 
Dim   objField,   iCol,   iRow 
iCol   =   iColOffset 
iRow   =   iRowOffset 
For   Each   objField   in   objRS.Fields 
objSpreadsheet.Cells(iRow,   iCol).Value   =   objField.Name 
objSpreadsheet.Columns(iCol).AutoFitColumns 
'设置Excel表里的字体 
objSpreadsheet.Cells(iRow,   iCol).Font.Bold   =   True 
objSpreadsheet.Cells(iRow,   iCol).Font.Italic   =   False 
objSpreadsheet.Cells(iRow,   iCol).Font.Size   =   10 
objSpreadsheet.Cells(iRow,   iCol).Halignment   =   2   '居中 
iCol   =   iCol     1 
Next   'objField 
'Display   all   of   the   data 
Do   While   Not   objRS.EOF 
iRow   =   iRow     1 
iCol   =   iColOffset 
'For   Each   objField   in   objRS.Fields 
'If   IsNull(objField.Value)   then 
'objSpreadsheet.Cells(iRow,   iCol).Value   =   " " 
'Else 
'objSpreadsheet.Cells(iRow,   iCol).Value   =   objField.Value 
'objSpreadsheet.Columns(iCol).AutoFitColumns 
'objSpreadsheet.Cells(iRow,   iCol).Font.Bold   =   False 
'objSpreadsheet.Cells(iRow,   iCol).Font.Italic   =   False 
'objSpreadsheet.Cells(iRow,   iCol).Font.Size   =   10 
'End   If 
'iCol   =   iCol     1 
'Next   'objField 


For   i=0   to   objrs.fields.count-1 
If   IsNull(objrs.fields(i).value)   then 
objSpreadsheet.Cells(iRow,   iCol).Value   =   " " 
Elseif   i=3   then 
objSpreadsheet.Cells(iRow,   iCol).Value   =   cstr(objrs.fields(i).value& " ' ") 
objSpreadsheet.Columns(iCol).AutoFitColumns 
objSpreadsheet.Cells(iRow,   iCol).Font.Bold   =   False 
objSpreadsheet.Cells(iRow,   iCol).Font.Italic   =   False 
objSpreadsheet.Cells(iRow,   iCol).Font.Size   =   10 
else 
objSpreadsheet.Cells(iRow,   iCol).Value   =   objrs.fields(i).value 
objSpreadsheet.Columns(iCol).AutoFitColumns 
objSpreadsheet.Cells(iRow,   iCol).Font.Bold   =   False 
objSpreadsheet.Cells(iRow,   iCol).Font.Italic   =   False 
objSpreadsheet.Cells(iRow,   iCol).Font.Size   =   10 
End   If 
iCol   =   iCol     1 
Next   'objField 

objRS.MoveNext 
Loop 
End   Sub 

Function   SaveWorksheet(strFileName) 

'Save   the   worksheet   to   a   specified   filename 
On   Error   Resume   Next 
Call   objSpreadsheet.ActiveSheet.Export(strFileName,   0) 
SaveWorksheet   =   (Err.Number   =   0) 
End   Function 

End   Class 

Dim   objRS 
Set   objRS   =   Server.CreateObject( "ADODB.Recordset ") 
      Set   con=Server.Createobject( "ADODB.Connection ")     
con.open   "provider=microsoft.jet.oledb.4.0;data   source= "&   server.MapPath( ". "& "/database/project.mdb ") 
objRS.Open   session( "sql "),   con,1,1 
Dim   SaveName 
SaveName   =   Request.Cookies( "savename ")( "name ") 
Dim   objExcel 
Dim   ExcelPath 
ExcelPath   =   "Excel\ "   &   SaveName   &   ".xls " 
Set   objExcel   =   New   ExcelGen 
objExcel.RowOffset   =   1 
objExcel.ColumnOffset   =   1 
objExcel.GenerateWorksheet(objRS) 

If   objExcel.SaveWorksheet( "c:/test.xls ")   then   %> 
<script   language= "javascript "> 
window.alert( "数据已经保存在C盘下test.xls文件里,请核实. "); 
history.back(); 
</script> 
<% 
Else 
Response.Write( " <script   language=javascript> window.alert(数据保存失败。); </script> ") 
End   If 
Set   objExcel   =   Nothing 
objRS.Close 
Set   objRS   =   Nothing 
'session( "sql ")= " " 
%> 

================ 
session( "Sql ")保存的是查询的sql语句   
运行完后test.xls就保存在了服务器上了。但是我想保存在客户端上(在客户端上运行完后保存在了服务器上   服务器是运行iis这台机子)
客户端: 
查询页面:   <input   type=button   value= "导出 "   onClick= "javascript:export_onclick(); "> 
  function   export_onclick() 
{ 
window.location.href   =   "rp_export.asp?reports_sql= " sql;//这里的sql可以用你的session( "Sql ") 
} 
rp_export.asp: 
<%@   Language=VBScript%> 
<html> 
<head> 
<meta   http-equiv= "Content-Type "   content= "text/html;   charset=gb2312 "> 
<title> 无标题文档 </title> 
</head> 

<body> 
<% 
Response.Clear 
Response.ContentType   =   "text/xls " 
Response.AddHeader   "content-disposition ",   "attachment;   filename=export.xls " 

'点导出按钮后事件 

set   conn=server.createobject( "adodb.connection ") 
conn.open   "sql   server驱动 " 
SQL=session( "Sql ") 
'Set   rs=Server.CreateObject( "Adodb.RecordSet ") 
Set   rs=conn.execute(SQL) 
total=rs.fields.count 
while   not   rs.eof 
i=0 
while   i <cint(total) 
      Data=Data&rs(i)&chr(9) 
i=i 1     
wend 
Response.Write   Data&chr(13) 
Data= " " 
rs.moveNext 
wend 
rs.close 
conn.close   
Response.Flush 
Response.End 

%> 
</body> 
</html>

标签: Excel 客户端 asp c

实例下载地址

asp中如何在客户端把查询的结果集在本机上保存为excel

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警