POI的使用
先导包
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.11</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.11</version>
</dependency>
通过代码写一个九九乘法表在Excel里面
// 通过代码写一个九九乘法表
@Test
public void myTest() throws Exception{
//先创建一个Excel文件
SXSSFWorkbook wb = new SXSSFWorkbook();
// 创建一张表
Sheet sheet = wb.createSheet("九九乘法口诀");
// 创建相应的行
for (int i=1;i<=9;i++){
Row row = sheet.createRow(i-1);
//创建每行里面的格子
for (int j=1;j<=i;j++){
Cell cell = row.createCell(j);
// 在单元格里面填入数据
cell.setCellValue(i+"*"+j+"="+(i*j));
}
}
FileOutputStream out = new FileOutputStream("temp/99.xlsx");
wb.write(out);//保存Excel文件
out.close();//关闭文件流
}
通过代码读取xlsx文件
//通过代码来读取外部Excel文件
@Test
public void testRead() throws Exception{
// 先将文件直接读取到内存中来
Workbook wb = WorkbookFactory.create(new File("temp/emp.xlsx"));
// 根据文件拿到对应的表
Sheet sheet = wb.getSheetAt(0);
// 拿到对应的行
// 先通过拿最后一行,得到总行数
int lastRowNum = sheet.getLastRowNum();
//遍历行
for (int i=2;i<=lastRowNum;i++){
// 拿到对应的行
Row row = sheet.getRow(i);
//通过行,拿到每行对应的单元格
// 先通过获取最后一个单元格,来得到每行总的格数
short lastCellNum = row.getLastCellNum();
// 遍历每一行的每一个单元格
for (int j=0;j<lastCellNum;j++){
// 拿到该单元格的内容
Cell cell = row.getCell(j);
System.out.print(cell.getStringCellValue()+" ");
}
System.out.println();
}
}
学习怎样使用Easypoi
导入EasyPoi之前要将之前导入的POI包,删除。不然会有冲突
<!-- easypoi的支持 -->
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>3.2.0</version>
</dependency>
在test里面准备一个domain POIEmployee
写一个EasyPOITest