近日在用asp把access数据库的查询结果导出为excel文件时,出现一点问题,因为有一个字段是身份证号码,在导出的excel文件中,所有身份证号后3位全部变成0了!真是郁闷啊!网上查了一下才知道是excel默认的数字格式是"常规",只能正常显示输入的11位数字,超过11位就用科学记数法显示了。
为了解决这个问题,我只能把查询的数据标识成文本型数据,下面是部份代码
%26lt;%
'导出到excel
set rs = server.createobject("adodb.recordset")
sqlstr="select * from tabname where"%26amp;searhsql '查询语句
rs.open sqlstr,oconn,1,3
%%26gt;
%26lt;%set fs = server.createobject("script_ing.filesystemobject")
'存放文件
filename="info.xls"
temp=filename
filename=request.servervariables("appl_physical_path")%26amp;"%26amp;#92;"+filename
'删除存在的excel文件
'if fs.fileexists(filename) then
'fs.deletefile(filename)
'end if
'-创建excel文件
set myfile = fs.createtextfile(filename,true)
dim strline,responsestr
strline=""
for each x in rs.fields
strline= strline %26amp; x.name %26amp; chr(9)
next
'将表的列名先写入excel
myfile.writeline strline
while not rs.eof
strline=""
for each x in rs.fields
'这里把数据标识成文本类型
strline= strline %26amp; "="""%26amp;x.value %26amp;""""%26amp; chr(9)
next
'将表的数据写入excel
myfile.writeline strline
rs.movenext
wend
link="%26lt;a href=%26amp;#92;" %26amp; temp %26amp; " title=将数据保存至eecel表中%26gt;%26lt;font color=red%26gt;%26lt;b%26gt;导出excel文件%26lt;/b%26gt;%26lt;/font%26gt;%26lt;/a%26gt;"
response.write link
set myfile = nothing
set fs=nothing
rs.close
%%26gt;
实例源代码下载http://code.knowsky.com/down/12254.html
