Java使用POI导出Excel

Java使用POI导出Excel不管是Web开发还是桌面开发,对办公软件的操作是常有的需求,如对微软Excel电子表格的操作,经常需要对一些数据导出到Excel文件,或将一个Excel文件的数据读取到数据库。在java操作Excel可以使用POI组件或JXL组件。POI全称PoorObfuscationImplementation,是Apache组件的一个开源项目,可以对微软的Office一系列办公软件进行读写操作。……

不管是Web开发还是桌面开发,对办公软件的操作是常有的需求,如对微软Excel电子表格的操作,经常需要对一些数据导出到Excel文件,或将一个Excel文件的数据读取到数据库。在java操作Excel可以使用POI组件或JXL组件。

POI全称PoorObfuscation Implementation ,是Apache组件的一个开源项目,可以对微软的Office一系列办公软件进行读写操作。

下载jar

官方下载地址:Apache POI – Download Release Artifacts,目前最新版本为POI 4.1.0。

Apache POI发行版支持多种文档文件格式。这种支持在几个Jar文件中提供。并非每种格式都需要所有jar。可到下面的网址看详细的说明,看需求导入需要的jar包

Apache POI -Component OverviewApache POI – Component Overview

使用之前导入jar包

Java使用POI导出Excel

使用POI组件创建Excel,主要使用的是org.apache.poi.hssf.usermodel.HSSFWorkbook类和org.apache.poi.hssf.usermodel.HSSFSheet类。HSSFWorkbook表示为Excel工作簿,是最为重要的类,获取HSSFWorkbook对象,再从HSSFWorkbook中获取工作表对象。

HSSFWorkbook类常用方法如下

createSheet():创建Excel工作表 返回类型为HSSFSheeet

setSheetName():设置Excel工作表的名称,语法结构如下

public void setSheetName(int sheetIx,String name)

参数sheetLx:指定需要修改名称的工作表的索引,索引是从0开始

参数 name:设置工作表的名称

setSelectTab():设置Excel文件中哪一个工作表为选择状态,语法如下

public void setSelectedTab(int index) 参数 index 设置选择状态的工作表的索引(从0开始)

writer()方法:将缓存中创建的Excel文件对象以流的形式写入文件中

public void writer(OutputStream out)参数:stream 文件输出流的对象,将数据写入之前,需要创建此文件输出流的对象。

导出Excel:(为了方便演示,下面代码写在Servlet中的doGet方法中,数据也是手动添加的,如数据需要从数据库中取,可以向从数据库查询数据,返回List集合,遍历集合从而产生数据行,注意如果使用Map来存放数据,应使用LinkedHashMap来保证有序,使标题和数据对应)

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //创建HSSFWorkbook对象
    HSSFWorkbook wb = new HSSFWorkbook();
    //建立sheet对象
    HSSFSheet sheet=wb.createSheet("成绩表");
    //在sheet里创建第一行,参数为行索引
    HSSFRow row1=sheet.createRow(0); 
    //创建单元格
    HSSFCell cell=row1.createCell(0); 
     //设置单元格内容
    cell.setCellValue("学生成绩表");       
    //合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
    sheet.addMergedRegion(new CellRangeAddress(0,0,0,3));

    //在sheet里创建第二行
    HSSFRow row2=sheet.createRow(1);   
     //创建单元格并设置单元格内容
    row2.createCell(0).setCellValue("姓名");
    row2.createCell(1).setCellValue("班级");   
    row2.createCell(2).setCellValue("语文成绩");
    row2.createCell(3).setCellValue("数学成绩");    
    row2.createCell(4).setCellValue("英语成绩");   

    //在sheet里创建第三行
    HSSFRow row3=sheet.createRow(2);
    row3.createCell(0).setCellValue("小明");
    row3.createCell(1).setCellValue("1班");
    row3.createCell(2).setCellValue(80);    
    row3.createCell(3).setCellValue(75);   
    row3.createCell(4).setCellValue(88);   
    HSSFRow row4=sheet.createRow(3);
    row4.createCell(0).setCellValue("小红");
    row4.createCell(1).setCellValue("1班");
    row4.createCell(2).setCellValue(82);   
    row4.createCell(3).setCellValue(70);   
    row4.createCell(4).setCellValue(90);
    //输出Excel文件
     OutputStream output=response.getOutputStream();
    response.reset();
    //设置响应头,
    response.setHeader("Content-disposition", "attachment; filename=Student.xls");
    response.setContentType("application/msexcel");       
    wb.write(output);
    output.close();

    }

效果

Java使用POI导出Excel

Java使用POI导出Excel

设置样式,如字体、单元格等(详细的可以去看官方文档)

 // 设置单元格的横向和纵向对齐方式,  cellStyle.setAlignment(HSSFCellStyle.ALIGN_JUSTIFY); 

 cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); 
 //设置背景颜色 
cellStyle.setFillBackgroundColor(HSSFColor.LIGHT_YELLOW.index);

今天的文章Java使用POI导出Excel分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/9908.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注