packagecom.DX.Impt;
importjava.io.IOException;
importjava.io.OutputStream;
importjava.util.List;
importjavax.servlet.http.HttpServletResponse;
importorg.apache.poi.hssf.usermodel.HSSFCell;
importorg.apache.poi.hssf.usermodel.HSSFCellStyle;
importorg.apache.poi.hssf.usermodel.HSSFRow;
importorg.apache.poi.hssf.usermodel.HSSFSheet;
importorg.apache.poi.hssf.usermodel.HSSFWorkbook;
importcom.DX.Dao.PrintDao;
publicclassPrintDaoImptimplementsPrintDao{
privateHSSFWorkbookwb;
publicPrintDaoImpt()
{
wb=newHSSFWorkbook();
}
publicvoidcreatExcel(HttpServletResponseresponse,Stringname,String[]title,Listlist)
{
try{
OutputStreamos=response.getOutputStream();
response.setCharacterEncoding(\"UTF-8\");
response.reset();
response.setHeader(\"Content-Disposition\",\"attachment;filename=test123.xls\");
response.setContentType(\"application/vnd.ms-excel\");
creatSheet(os,list,name,title);
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
publicvoidcreatSheet(OutputStreamos,Listlist,Stringname,String[]title)
{
HSSFSheetsheet=wb.createSheet(\"newsheet\");
wb.setSheetName(0,name,HSSFWorkbook.ENCODING_UTF_16);
HSSFRowtrow=sheet.createRow((short)0);
for(inti=0;ititle.length;i)
{
creatCell(wb,trow,(short)i,title);
}
for(inti=0;ilist.size();)
{
Object[]one=(Object[])list.get(i);
i;
HSSFRowrow=sheet.createRow(i);
for(intj=0;jone.length;j)
{
creatCell(wb,row,(short)j,one[j].toString());
}
}
try{
os.flush();
wb.write(os);
os.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
privatevoidcreatCell(HSSFWorkbookwb,HSSFRowrow,shortcol,Stringvalue)
{
HSSFCellcell=row.createCell(col);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);
cell.setCellValue(value);
HSSFCellStylecellstyle=wb.createCellStyle();
cellstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER_SELECTION);
cell.setCellStyle(cellstyle);
}
}
我这样写导出的是一个名字是下划线的XLS文件,0KB大小内容为空
还有,为什么我真个把这部分代码全部删除运行后还能不报错,依旧能下载原来那个0KB文件?我重新部署过
|