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