您的位置:首页 > 编程语言 > Java开发

java 报表 可以直接打开,或下载

2014-04-02 09:55 330 查看
public String exportReport() {

HttpServletRequest request = ServletActionContext.getRequest();

String a = request.getParameter("a");

//第一步,创建一个webbook,对应一个Excel文件

HSSFWorkbook wb = new HSSFWorkbook();

//第二步,在webbook中添加一个sheet,对应Excel文件中的sheet

HSSFSheet sheet = wb.createSheet("图书类别信息");

//第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short

HSSFRow row = sheet.createRow((int)0);

row.createCell((short)0).setCellValue(a);

HSSFRow row1 = sheet.createRow((int)1);

//第四步,创建单元格,并设置值表头 设置表头居中

HSSFCellStyle style = wb.createCellStyle();

style.setAlignment(HSSFCellStyle.ALIGN_CENTER); //创建一个居中格式

HSSFCell cell = row1.createCell((short)0);

cell.setCellValue("编号"); cell.setCellStyle(style);

cell = row1.createCell((short)1);

cell.setCellValue("类别名称"); cell.setCellStyle(style);

cell = row1.createCell((short)2);

cell.setCellValue("可借天数"); cell.setCellStyle(style);

cell = row1.createCell((short)3);

cell.setCellValue("罚款金额"); cell.setCellStyle(style);

//第五步,写入实体数据 实际应用中这些数据从数据库得到,

// if(booktype.getStatType()==null)

// {

// temandhumInfo.setStatType("0");

// }

List<Booktype> booktypelist = booktypeBiz.getBooktypeAll();

for (int i = 0; i < booktypelist.size(); i++)

{

row1 = sheet.createRow((int)i+2);

Booktype info = booktypelist.get(i);

//第四步,创建单元格,并设置值

row1.createCell((short)0).setCellValue(info.getId());

row1.createCell((short)1).setCellValue(info.getTypeName());

row1.createCell((short)2).setCellValue(info.getBydays());

row1.createCell((short)3).setCellValue(info.getFine());

// cell = row1.createCell((short)4);

// cell.setCellValue(info.getCollecttime());

}

//第六步,将文件存到指定位置

// try

// {

// FileOutputStream fout = new FileOutputStream("E:/"+tableName+"监测表.xls");

// wb.write(fout);

// fout.close();

// } catch (Exception e)

// {

// e.printStackTrace();

// }

//弹出直接打开或者下载(可以选择文件下载保存路径)

HttpServletResponse response = ServletActionContext.getResponse();

response.reset();

response.setCharacterEncoding("UTF-8");

response.setContentType("application/vnd.ms-excel"); //保证不乱码

try

{

response.setHeader("Content-Disposition","attachment;" + " filename=" + new String(a.getBytes(), "ISO-8859-1"));

}

catch (UnsupportedEncodingException e1)

{

// TODO Auto-generated catch block

e1.printStackTrace();

}

try

{

ByteArrayOutputStream oss =new ByteArrayOutputStream();

OutputStream os = response.getOutputStream();

wb.write(oss);

byte temp[] = oss.toByteArray();

ByteArrayInputStream in = new ByteArrayInputStream(temp);

int n = 0;

while ((n = in.read(temp)) >0) {

os.write(temp, 0, n);

}

os.flush();

os.close();

} catch(Exception e)

{

e.printStackTrace();

}

return null;

}

public Booktype getBooktype() {

return booktype;

}

public void setBooktype(Booktype booktype) {

this.booktype = booktype;

}

public BooktypeBiz getBooktypeBiz() {

return booktypeBiz;

}

public void setBooktypeBiz(BooktypeBiz booktypeBiz) {

this.booktypeBiz = booktypeBiz;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: