首先了解以下excel文件怎么和poi中的组件对应起来的。
- 一个Excel文件对应于一个Workbook对象
- 一个Workbook可以有多个Sheet对象
- 一个Sheet对象由多个Row对象组成
- 一个Row对象是由多个Cell对象组成
基于以上几条,如果想对excel文件进行读写的话就要
- 用Workbook打开或者创建一个Excel文件的对象
- 用上一步的Excel对象创建或者获取到一个Sheet对象
- 用Sheet对象创建或获取一个Row对象
- 用Row对象创建或获取一个Cell对象5.对Cell对象读写。
基于以上原理就可以轻松对Excel文件进行读写,这里以XSSFWorkbook(对应.xlsx文件即office2007以上版本,如果是.xls文件即office2003以下版本需要使用HSSFWorkbook)为例进行Excel的简单读写。
maven依赖
<!https://mvnrepository.com/artifact/org.apache.poi/poi>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17beta1</version>
</dependency>
<!https://mvnrepository.com/artifact/org.apache.poi/poiooxml>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poiooxml</artifactId>
<version>3.16beta1</version>
</dependency>
写操作
//创建一个Excel对象
XSSFWorkbookwb=newXSSFWorkbook();
//创建表单Sheet对象
XSSFSheetsheet=wb.createSheet();
//创建Row对象
XSSFRowrow1=sheet.createRow(0);
XSSFRowrow2=sheet.createRow(1);
XSSFRowrow3=sheet.createRow(2);
//创建Cell对象,并进行写操作
//第一行
XSSFCellcell1=row1.createCell(0);
cell1.setCellValue("姓名");
XSSFCellcell2=row1.createCell(1);
cell2.setCellValue("年龄");
//第二行
cell1=row2.createCell(0);
cell1.setCellValue("三");
cell2=row2.createCell(1);
cell2.setCellValue("20");
//第三行
cell1=row3.createCell(0);
cell1.setCellValue("四");
cell2=row3.createCell(1);
cell2.setCellValue("18");//输出文件FileOutputStreamoutput=newFileOutputStream("test.xlsx");
wb.write(output);
output.flush();
结果