JS里面一个时间 通过servlet  传送给定title 
接收后转码 UTF-8 
 最后 
HSSFCell cell = row.createCell(0);
cell.setCellValue(new HSSFRichTextString(title));String sFileName = title + ".xls";   
  response.setHeader("Content-Disposition","attachment;filename=".concat(String.valueOf(URLEncoder.encode(sFileName, "UTF-8"))));
  response.setHeader("Connection", "close");
  response.setHeader("Content-Type", "application/vnd.ms-excel");
  wb.write(response.getOutputStream()); 点击导出按钮时,后台执行的语句打印title全部正常
弹出下载或保存栏后,保存,后台又执行一遍
就是在这个出现的问题
如果文件较小 5K左右时能正确导出 用到title的值显示出来 后台打印正常
如果文件大一点 10几K的话 title值就变成了乱码,后台打印乱码,文件名正常

解决方案 »

  1.   


    恩,title 标题和一个Cell 和Sheet引用,标题没有乱码,其他乱码了
      

  2.   

    cell.setCellValue(title);这样试试先。
      

  3.   

    整了一个解决办法,不知道还会不会出问题在JS部分 
    var title ="关系链路"
    title=escape(escape(title));
    document.location.href = path+"/title="+title+"&sql="+param+'&export=excel';在代码里接收,没有转码String title = request.getParameter("title");
    title = JSescape.unescape(JSescape.unescape(title));http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/11.gif
      

  4.   

    http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/11.gif