java导出excel,poi技术

最近公司做人事管理系统,要导出管理人员的的Excel表格,所以就研究一番,写了一个演示

废话不多说,上代码

 //导出的地址
        File path=new File("D:/test_excel.xlsx");
        //创建excel对象
        HSSFWorkbook wb=new HSSFWorkbook();
        //创建sheet对象
        HSSFSheet sheet=wb.createSheet("这是excel测试");
        //excel的第一行名称
        String [] str={"id","name","age"};
        //创建行对象
        HSSFRow row=sheet.createRow(0);
        //创建行里的单元格格式对象
        HSSFCellStyle style = wb.createCellStyle();
        //设置单元格居中
        style.setAlignment(HorizontalAlignment.CENTER);

        //创建单元格对象
        HSSFCell cell=null;
        //为单元格赋值
        for (int i=0;i<str.length;i++){
            cell = row.createCell(i);
            cell.setCellValue(str[i]);
            //单元格居中
            cell.setCellStyle(style);
        }
        
        for (int i = 1; i <=10 ; i++) {
            //创建行
            row=sheet.createRow(i);
            //在行里放单元格
            for (int j = 0; j <3 ; j++) {
                //每一行的第一个单元格
                cell=row.createCell(0);
                cell.setCellValue(i+"id");
                //每一行的第二个单元格
                cell=row.createCell(1);
                cell.setCellValue("我是NAME");
                //每一行的第三个单元格
                cell=row.createCell(2);
                cell.setCellValue("年龄");
            }
        }
        //输出excel表格,到指定路径
        try {
            wb.write(path);
            wb.close();
        }catch(Exception e){
            e.printStackTrace();
        }

这只是一个例子,如果要实现从网上下载到本地,还需要改造一番

在附上一个网络下载时,需要设置的响应头等

 public void toExcel(HSSFWorkbook hfb, HttpServletResponse response, String excelName) {
        try {
            ByteArrayOutputStream byteArray = new ByteArrayOutputStream();
            hfb.write(byteArray);
            hfb.close();

            String fileName = URLEncoder.encode(excelName + ".xlsx", "UTF-8");
            response.reset();
            response.setHeader("Content-Disposition", "attachment;filename*=utf-8'zh_cn'" + fileName);
            response.addHeader("Content-Length", "" + byteArray.size());
            response.setContentType("application/msexcel;charset=utf-8");
            ServletOutputStream outputStream = response.getOutputStream();
            outputStream.write(byteArray.toByteArray());
            outputStream.flush();
            outputStream.close();
            byteArray.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

好了,完事

猜你喜欢

转载自blog.csdn.net/weixin_42160445/article/details/81943684