poi导出

Posted 土上方方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poi导出相关的知识,希望对你有一定的参考价值。

   一、 POI简介

      Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。

二、 HSSF概况

            HSSF 是Horrible SpreadSheet Format的缩写,通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。HSSF 为读取操作提供了两类API:usermodel和eventusermodel,即“用户模型”和“事件-用户模型”。

    三: POI EXCEL文档结构类

            HSSFWorkbook excel文档对象

            HSSFSheet excel的sheet HSSFRow excel的行

            HSSFCell excel的单元格 HSSFFont excel字体

            HSSFName 名称 HSSFDataFormat 日期格式

            HSSFHeader sheet头

            HSSFFooter sheet尾

            HSSFCellStyle cell样式

            HSSFDateUtil 日期

            HSSFPrintSetup 打印

            HSSFErrorConstants 错误信息表

以上为POI的基本介绍 下面通过例子展开详解:(运用的开发软件为IDEA)

pom的节点

 

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.17-beta1</version>
        </dependency>
创建Student实体类:将其属性进行get,set封装
public class Student {
      private Integer id;
      private String name;
      private Integer age;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}
创建测试类Text:
public class Text {
    @Test
    public void  test() throws IOException {
       //创建HSSFWorkbook对象
HSSFWorkbook  wk=new HSSFWorkbook();
        //创建HSSFSHeet对象(excel表单)
HSSFSheet  sheet=wk.createSheet("学生表");
         HSSFRow    row=sheet.createRow(0);
         HSSFCell  cell=row.createCell((short)0);
         cell.setCellValue("学生编号");
         cell=row.createCell((short)1);
         cell.setCellValue("学生姓名");
         cell=row.createCell((short)2);
         cell.setCellValue("学生年龄");
        List<Student> list=new ArrayList<Student>();
             Student  student=new Student();
             student.setId(1);
             student.setName("轩轩");
             student.setAge(20);
             Student  student1=new Student();
             student1.setId(2);
             student1.setName("娜娜");
             student1.setAge(16);
             list.add(student);
             list.add(student1);
             for (short i=0;i<list.size();i++){
                 row=sheet.createRow(i+1);
                 row.createCell(0).setCellValue(list.get(i).getId());
                 row.createCell(1).setCellValue(list.get(i).getName());
                 row.createCell(2).setCellValue(list.get(i).getAge());
             }

           /*第一种方式*/
      /*  HSSFRow row=sheet.createRow(0);
        HSSFCell cell=row.createCell(0);
        cell.setCellValue("学生成绩表");
        sheet.addMergedRegion(new CellRangeAddress(0,0,0,2));
        HSSFRow  row1=sheet.createRow(1);
        row1.createCell(0).setCellValue("学生编号");
        row1.createCell(1).setCellValue("学生姓名");
        row1.createCell(2).setCellValue("学生年龄");
        HSSFRow   row3=sheet.createRow(2);
        row3.createCell(0).setCellValue("1");
        row3.createCell(1).setCellValue("啦啦");
        row3.createCell(2).setCellValue("16");*/
FileOutputStream  outputStream=new FileOutputStream("E:\\workbooks.xls");
        wk.write(outputStream);
        outputStream.flush();
    }
}
第一种方式结果:

技术分享

第二种方式结果:

技术分享

以上是关于poi导出的主要内容,如果未能解决你的问题,请参考以下文章

基于POI导出Excel数据

Java 利用poi 导出excel表格 如何在导出时自由选择路径?

poi 实战代码---导出Excel(根据模板导出,复制代码用)

java poi导出excel

如何用poi导出excel设置列宽

java 通过Apache poi导出excel代码demo实例