SSH框架中数据库数据生成execel表格提供下载

 

1,在业务逻辑层:

public InputStream getInputStream() {
  //建立一个exel主界面
  HSSFWorkbook book=new HSSFWorkbook();
  //创建一个sheet
  HSSFSheet sheet=book.createSheet("sheet1");
  //创建第一行
  HSSFRow row=sheet.createRow(0);
  
  //创建单元格
  HSSFCell cell=row.createCell((short)0);
  //设置字符编码
  cell.setEncoding(HSSFCell.ENCODING_UTF_16);
  //设置的第一个单元格显示
  cell.setCellValue("序号");
  
  // 创建第二个单元格
  cell=row.createCell((short)1);
  //设置字符编码
  cell.setEncoding(HSSFCell.ENCODING_UTF_16);
  //设置的第一个单元格显示
  cell.setCellValue("用户名");
  
  //创建第三个单元格
  cell=row.createCell((short)2);
  //设置字符编码
  cell.setEncoding(HSSFCell.ENCODING_UTF_16);
  //设置的第一个单元格显示
  cell.setCellValue("密码");
  
  List<?> list=this.findByAll();
  for(int i=0;i<list.size();i++){
   Person person=(Person)list.get(i);
   
   row=sheet.createRow(i+1);
   
   cell=row.createCell((short)0);
   cell.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell.setCellValue(i+1);
   
   cell=row.createCell((short)1);
   cell.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell.setCellValue(person.getUsername());
   
   cell=row.createCell((short)2);
   cell.setEncoding(HSSFCell.ENCODING_UTF_16);
   cell.setCellValue(person.getPassword());
  }
  //这个excel文件会在tomcat的bin目录下生成。

  String fileName=RandomCharacter.getRandomString(6);
  File file=new File(fileName+".xls"); 
  //File file=new File("text.xls");
  
  try {
   OutputStream output=new FileOutputStream(file);
   book.write(output);
   output.close();
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } 
  //返回结果的文件输入文件流,到内存里方便下载
  InputStream input=null;
  try {
   input=new FileInputStream(file);
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return input;
 }

2,在Action层:

public InputStream getDownloadFile()
 {
  return baseService.getInputStream();
 }
 
 public String getXls() throws Exception {
  this.getDownloadFile();
  return SUCCESS;
 }

3,在strut.xml中配置:

<result name="success" type="stream">
<param name="contentType">application/vnd.ms-excel</param>
<param name="contentDisposition">attachment;filename="AllUsers.xls"</param>
<param name="inputName">downloadFile</param>
</result>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值