HttpServlet存为2000excel是乱码!
excel: 订购单
分馆代码 批次号 订购号 ISBN 题名 出版社 出版日期 复本数 币种 价格 总价 订购时间 备注信息 装帧形式
济南市少儿图书馆 20081105 1 7-220-01651-4 ??? ? ? ?? 四川人民出版社 1992.7 1 CNY 10.4 10.4 2008-11-5 谷建峰... 平装
题名是韩文现在显示不出来,哪位老师能给看看?
Statement stmt = null;
ResultSet rs = null;
//Set columnBeans = new LinkedHashSet();
Set beans = new LinkedHashSet();
//ReportCodeBean reportBean = new ReportCodeBean();
int num = 0;
String str = "";
try{
stmt = con.createStatement();
rs = stmt.executeQuery(sql);
String fileSufName = ".xls";
if(fileType.equals("1")){
fileSufName = ".txt";
}
String eTitle = "\t\t\t"+title+"\n";
for(Iterator columnIt = columnBeans.iterator();columnIt.hasNext();){
TableColumnBean bean = (TableColumnBean)columnIt.next();
eTitle += bean.getColumnDesc()+"\t";
}
eTitle += "\n";
res.reset();
res.setHeader("Content-disposition","attachment;filename="+"report"+fileSufName+";charset=GBK");
res.setContentType("application/vnd.ms-excel;charset=GBK");
ServletOutputStream servletout=res.getOutputStream();
servletout.write(eTitle.getBytes("GBK"));
while(rs.next()){
DynaBean account = new DynaBean();
try{
account.setAllAttr(columnBeans, rs);
}catch(Exception e){System.out.println(e.toString());}
beans.add(account);
num++;
if(num>65535 && fileType.equals("0")){ return; } //大于65534条就退出
Iterator recIt = beans.iterator();
while(recIt.hasNext()){
DynaBean dynaBean = (DynaBean)recIt.next();
for(Iterator columnIt = columnBeans.iterator();columnIt.hasNext();)
{
TableColumnBean bean = (TableColumnBean)columnIt.next();
if(bean.getColumnName().equals("barcode")){
str += "["+dynaBean.getAttr(bean.getColumnName())+"]"+"\t";
}else{
str += dynaBean.getAttr(bean.getColumnName())+"\t";
}
}
str += "\n";
}
// byte[] tempByte = str.getBytes("iso8859-1");
//String tempValue=new String(tempByte,"UTF-8");
// servletout.write(tempValue);
servletout.write(str.getBytes("GBK"));
servletout.flush();