POI--实现代码创建xls文档

本文介绍了如何使用 Apache POI 库进行 Excel 文件的读写操作,并通过实例展示了如何利用 Java 创建 Excel 文件,包括单条记录和列表数据的写入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 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>
测试类需要的节点
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.3</version>
  <scope>test</scope>
</dependency>


创建一个实体类 Student   :

public class Student {
    private Integer sid;
    private String sname;
    private Integer sage;

    public Integer getSid() {
        return sid;
    }

    public void setSid(Integer sid) {
        this.sid = sid;
    }

    public String getSname() {
        return sname;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }

    public Integer getSage() {
        return sage;
    }

    public void setSage(Integer sage) {
        this.sage = sage;
    }
}

开始编写测试类(output):

public class output {
    @Test
    public void outExcel() throws IOException{

        //创建HSSFWorkbook对象
        HSSFWorkbook wk=new HSSFWorkbook();
        //创建HSSFSheet对象(excel表单)
        HSSFSheet sheet=wk.createSheet("学生表");

       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("18");
       FileOutputStream outputStream=new FileOutputStream("e:\\workbook.xls");
        wk.write(outputStream);
        outputStream.flush();

运行软件 运行后打开E磁盘找到workbook.xls  

打开后效果如下


以上为单个添加  下面进行集合添加 还是同一个实体类 只在测试类中进行修改:

public class output {
    @Test
    public void outExcel() 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("学生年龄");
cell=row.createCell(((short)3));
List<Student>list=new ArrayList<Student>();
Student stu=new Student();
stu.setSid(1);
stu.setSname("辉");
stu.setSage(18);

Student stu1=new Student();
stu1.setSid(2);
stu1.setSname("小辉");
stu1.setSage(9);
list.add(stu);
list.add(stu1);

for(short i=0;i<list.size();i++){
    row=sheet.createRow(i+1);
    row.createCell(0).setCellValue(list.get(i).getSid());
    row.createCell(1).setCellValue(list.get(i).getSname());
    row.createCell(2).setCellValue(list.get(i).getSage());
}

FileOutputStream outputStream=new FileOutputStream("e:\\workbooks.xls");
wk.write(outputStream);
outputStream.flush();


完成后效果如下





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值