在Javaweb中利用POI导出Excel表格

场景:要求利用Excel把报表的数据导出到本地计算机。

Javaweb生成Excel表格有很多种技术,我选择了POI技术进行Excel表格的导入导出。选择POI是因为它兼容了office2007以上的版本和简便的操作性。

在此通过简单的例子说明如何利用POI生成一个表格,在表格里面简单填写一些内容,并通过客户端下载生成的Excel表格。

首先要搭建好一个javaweb的编程环境,下载POI的jar包。详细的步骤请参考:POI教程

public class PoiServlet extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        //创建一个工作簿
        XSSFWorkbook workbook = new XSSFWorkbook();
        // 创建一个电子表
        XSSFSheet sheet = workbook.createSheet("Employee Info");
        //创建一个row对象
        XSSFRow row;
        //创建一个map对象,输入内容并把内容填写到生成的电子表中
        Map<String, Object[]> empinfo = new TreeMap<String, Object[]>();
        empinfo.put("1", new Object[] { "EMP ID", "EMP NAME", "DESIGNATION" });
        empinfo.put("2", new Object[] { "tp01", "Gopal", "Technical Manager" });
        empinfo.put("3", new Object[] { "tp02", "Gopal", "Technical Manager" });
        empinfo.put("4", new Object[] { "tp02", "Gopal", "Technical Manager" });
        Set<String> keyid = empinfo.keySet();
        int rowid = 0;
        for (String key : keyid) {
            row = sheet.createRow(rowid++);
            Object[] objectArr = empinfo.get(key);
            int cellid = 0;
            for (Object obj : objectArr) {
                Cell cell = row.createCell(cellid++);
                cell.setCellValue((String) obj);
            }
        }
        //创建下载时的文件名称,我们这里创建一个可读性强的文件名
        String fileName = "学生成绩表.xlsx";
        //因为创建的文件名是包含中文,我们需要进行编码转换
        fileName = new String(fileName.getBytes("GBK"), "ISO-8859-1");
        //设置响应头的内容
        response.setContentType("application/vnd.ms-excel");
        //设置content-disposition响应头,使我们下载的时候可以显示我们所设置的文件名称跟类型
        response.setHeader("content-disposition", "attachment;filename="
                + fileName);
        //利用response创建一个输出流
        OutputStream outputStream = response.getOutputStream();
        // 利用POI中的方法把Excel电子表写入到输出流中
        workbook.write(outputStream);
        //刷新输出流
        outputStream.flush();
        //关闭输出流
        outputStream.close();
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

    }
}

上面的例子简单的展示了如何创建一个Excel电子表格,并通过客户端下载生成的Excel电子表格。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值