一、 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();