我用这种方式把数据导出到excel里面,在一个新的页面里放入要导出的表单,然后在这个页面的最顶部放上下面的两句话:<%@ page language="java" contentType="application/.vnd.ms-excel;charset=UTF-8"%>
<%response.setContentType("application/.vnd.ms-excel");%>中间的表格我是这样显示的:<table border='1'><tr>    <td>编号</td>    <td>姓名</td>       <td>email</td>     </tr><c:foreach var="co" items="${ublist}">    <tr>    <td> ${co.uid}  </td>    <td>${co.uname} </td>       <td>${co.email} </td>     </tr>     </c:foreach>
但是导出文件后,打开文件后,导出的数据如果是全数字的并且长度大于11位,则用科学记数法显示在单元格里,也就是说,在导出的时候,只要是全数字的值,自动被转换为了数字型数据。要怎么使他保持原来的字符型,完全显示呢?

解决方案 »

  1.   

    近日在用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")&"&#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 & 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=&#92;" & temp & " title=将数据保存至eecel表中><font color=red><b>导出excel文件</b></font></a>" 
    response.write link 
    set myfile = nothing 
    set fs=nothing 
    rs.close 
    %> 
      

  2.   

    当然不是一种道出方式了,2楼的是创建文件并插入值,并且设置单元格的属性。
    而你的在你输出值里的前面多加一个空格就可以了,在excel中默认以空格开头的值为字符串而非数字
      

  3.   

    用POI 可以改成字符串的就不会有你说的那中情况了. 
      

  4.   

     呵呵问题解决了我用的方法是:在要输出的数据前面加上一个空格,这个空格要用HTML语言写&nbsp;${co.uid} -----------像这样就OK啦!
      

  5.   

    Jsp/Servlet + POI 导出 Excel:
    htp://zhanqi.me/archives/287
      

  6.   

    Jsp/Servlet + POI 导出 Excel:
    http://zhanqi.me/archives/287