| |
[问]关于ASP导出Excel的问题
|
|
作者: Flycat1022
01-01 08:00
回复
|
|
-
ASP导出Excel的几个要求:
1, 不生成中间文件
由于文件包含了一些机密数字, 所以要求不能是生成xls文件后下载此文件.
2, 生成后可在文件中插入工作表, 且不生成filename.files目录
一般使用网页直接保存成xls(无论客户端或服务器端)均有这个问题~~~
3, 尽量使用服务器端实现, 因为客户端实现容易出现很多问题..如js被屏蔽之类的~~~
谢谢! |
|
| |
回复:[问]关于ASP导出Excel的问题
|
|
作者: KingsNet
01-01 08:00
回复
|
|
把我开发的WEB版编码系统导出XLS的代码贴出来吧,你参照着修改一下就可以实现你要的功能。
在其他页面用location.href(这样不会新开窗口)调用它:<a href="javascript:location.href='SaveXls.asp?sql=xxx'">导出</a>
<!--#include file="Conn.asp"-->
<%
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "No-Cache"
Response.Clear
Dim MySql
Dim Rs,Sql
Dim objFSO,xlsFile,objStream
Dim FileName
Dim XlsSize,XlsName
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
FileName = Server.MapPath(".") & "\" & Replace(objFSO.GetTempName,".tmp","") & ".xls"
If objFSO.FileExists(FileName) Then
objFSO.DeleteFile(FileName)
End If
Set xlsFile = objFSO.CreateTextFile(FileName,true)
xlsFile.WriteLine "图号" & CHR(9) & "原图号" & CHR(9) & "规格" & CHR(9) & "名称" & CHR(9) & "英文名称" & CHR(9) & "材料" & CHR(9) & "设计" & CHR(9) & "设计日期" & CHR(9) & "校对" & CHR(9) & "审核" & CHR(9) & "工艺审查" & CHR(9) & "标准化" & CHR(9) & "批准" & CHR(9) & "批准日期" & CHR(9) & "图幅" & CHR(9) & "比例" & CHR(9) & "来源" & CHR(9) & "图样标记" & CHR(9) & "重量" & CHR(9) & "编码人" & CHR(9) & "编码日期" & CHR(9) & "编码时间" & CHR(9) & "编码状态" & CHR(9) & "任务组名" & CHR(9) & "说明" & CHR(9) & "Windchill用否"
Call OpenConn
MySql=Request("sql")
MySql=Replace(Replace(Replace(MySql,"[gt;]",">"),"[lt;]","<"),"CHR(37)","%")
Set Rs=Server.CreateObject("ADODB.RecordSet")
Sql="Select * From [bm] "&MySql
Rs.Open Sql,Conn,1,1
Do While Not Rs.EOF
xlsFile.WriteLine Rs("图号") & CHR(9) & Rs("原图号") & CHR(9) & Rs("规格") & CHR(9) & Rs("名称") & CHR(9) & Rs("英文名称") & CHR(9) & Rs("材料") & CHR(9) & Rs("设计") & CHR(9) & Rs("设计日期") & CHR(9) & Rs("校对") & CHR(9) & Rs("审核") & CHR(9) & Rs("工艺审查") & CHR(9) & Rs("标准化") & CHR(9) & Rs("批准") & CHR(9) & Rs("批准日期") & CHR(9) & Rs("图幅") & CHR(9) & Rs("比例") & CHR(9) & Rs("来源") & CHR(9) & Rs("图样标记") & CHR(9) & Rs("重量") & CHR(9) & Rs("编码人") & CHR(9) & Rs("编码日期") & CHR(9) & Rs("编码时间") & CHR(9) & Rs("编码状态") & CHR(9) & Rs("任务组名") & CHR(9) & Rs("说明") & CHR(9) & Rs("wt_used")
Rs.MoveNext
Loop
Rs.Close
Set Rs=Nothing
Call CloseConn
Set xlsFile = Nothing
Set xlsFile = objFSO.GetFile(FileName)
XlsSize = xlsFile.Size
'XlsName = xlsFile.Name
Set xlsFile = Nothing
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.LoadFromFile FileName
Response.AddHeader "Content-Disposition", "attachment; filename=查询结果.xls"
Response.AddHeader "Content-Length", XlsSize
Response.Charset = "UTF-8"
Response.ContentType = "application/vnd.ms-excel"
Response.BinaryWrite objStream.Read
Response.Flush
Response.Clear()
objStream.Close
Set objStream = Nothing
objFSO.DeleteFile FileName
Set objFSO = Nothing
%> |
|
| |
回复:[问]关于ASP导出Excel的问题
|
|
作者: wangzi9841
01-08 09:40
回复
|
|
可以下载了,不过打开还是有点问题,谢谢 |
|
| |
回复:[问]关于ASP导出Excel的问题
|
|
作者: wangzi9841
01-08 09:40
回复
|
|
KingsNet,为什么可以生成EXCEL文件,但是运行时总是无法打开,也无法下载,说找不到文件 |
|
| |
回复:[问]关于ASP导出Excel的问题
|
|
作者: Flycat1022
01-08 09:40
回复
|
|
done! 谢谢kingsNet |
|
| |
回复:[问]关于ASP导出Excel的问题
|
|
作者: hmj623
01-08 09:40
回复
|
|
EXCEL中单元格的默认格式是常规,数字前面的0就自动去掉了,要把单元格格式设置成文本格式才行 |
|
|