struts2超链接生成Excel

一、类方法,需要使用poi-2.5.1.jar包:
/*
* 导出Excle文件
*/
public InputStream getInputStream() {
//=======================生成一个Excle模板============================
//生成一个对象,类似Excel
     HSSFWorkbook wb=new HSSFWorkbook();
     //生成一个sheet
     HSSFSheet sheet=wb.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("名");

     cell=row.createCell((short) 3);
     cell.setEncoding(HSSFCell.ENCODING_UTF_16);
     cell.setCellValue("年龄");

     //从数据库获取记录
     List<Users> list=this.findUserAll();

     for (int i = 0; i < list.size(); i++) {
        Users user=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(user.getFirstname());

        cell=row.createCell((short) 2);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue(user.getLastname());

        cell=row.createCell((short) 3);
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        cell.setCellValue(user.getAge());
     }

    //=====运用字节数组输出流和字节数组输入流导出Excle文件,直接在内存中操作,这样不会产生临时文件======
     ByteArrayOutputStream baos=new ByteArrayOutputStream();
     try {
        wb.write(baos);
     } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
     }
     byte[] content= baos.toByteArray();
     InputStream inputStream=new ByteArrayInputStream(content);
     return inputStream;
}
二、action
package com.qfx.action;
import java.io.InputStream;
import com.opensymphony.xwork2.ActionSupport;
import com.zpj.service.UserService;

public class WriteEceclAction extends ActionSupport {
    private UserService userService;
    public void setUserService(UserService userService) {
        this.userService = userService;
    }
    public InputStream getDownloadFile(){
        return this.userService.getInputStream();
    }
    @Override
    public String execute() throws Exception {
        return SUCCESS;
    }
}
三、struts.xml
<!-- 输出Excel文件 -->
 <action name="writeExcel" class="writeExcelAction">
    <result name="success" type="stream">
     <param name="contentType">application/vnd.ms-excel</param>
        <!-- AllUser.xls是页面上要显示的文件名 -->
     <param name="contentDisposition">attachment;filename="AllUser.xls"</param>
     <param name="inputName">downloadFile</param>
    </result>
 </action>
四、jsp页面
<s:a href="http://xxx.blog.163.com/blog/writeExcel">在线生成Excel</s:a>

转载于:https://blog.51cto.com/1197822/2155297

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值