导入maven依赖:
<!-- POI -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
将数据导出到Excel
//创建HSSKWorkBook对象,相当于创建了一个xls
HSSFWorkbook wb=new HSSFWorkbook();
//在xls上新建一个sheet,并给sheet起个名字,一个sheet就是一页 相当于一个table
HSSFSheet sheet=wb.createSheet("用户列表");
//在此sheet上新建一行 0表示第一行 相当于table里的<tr>
HSSFRow row1=sheet.createRow(0);
//在第一行创建一列 0 代表第一列 相当于table里的<td> 这是一个单元格
HSSFCell cell=row1.createCell(0);
//在此单元格里填写内容
cell.setCellValue("用户列表");
//合并单元格 CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 3));
//创建第二行 1代表第二行
HSSFRow row2=sheet.createRow(1);
//在第二行里创建第一列并赋值
HSSFCell r2c0=row2.createCell(0);
r2c0.setCellValue("ID");
//在第二行里创建第2列并赋值
row2.createCell(1).setCellValue("姓名");
//在第二行里创建第3列并赋值
row2.createCell(2).setCellValue("年龄");
//...第三行........(可以遍历list生成多行)
HSSFRow row3=sheet.createRow(2);
row3.createCell(0).setCellValue("01");
row3.createCell(1).setCellValue("王帅");
row3.createCell(2).setCellValue("24");
try {
//输出到指定位置
OutputStream out = new FileOutputStream("E:/1.xls");
wb.write(out);
} catch (IOException e) {
e.printStackTrace();
}
运行结果:
导入Excel数据
//设置要输入的文件 必须是之前输出的
FileInputStream fileIn=new FileInputStream("E://1.xls");
//根据指定的文件输入流导入Excel从而产生Workbook对象
Workbook wb=new HSSFWorkbook(fileIn);
//获取Excel文档中的第一个sheet
Sheet sheet=wb.getSheetAt(0);
//设置一个集合来接受表单里的数据
List<User> list=new ArrayList<>();
User user = new User();
//循环变量该表单
for (Row row : sheet) {
/**
* 循环得到每行的数据
* row.getRowNum() 当前行的行号 从0开始
* 用户列表
ID 姓名 年龄
01 王帅 24
* 第一行标题 第二行是列名 从第三列开始是需要得到的内容
* row.getRowNum()<2 第一行第二行 continue后面的不再执行,从新开始循环
* 从第3行 -记录的数据 开始获取数据
*/
if(row.getRowNum()<2){
continue;
}
//把该行第一个单元格的内容给id
user.setId(row.getCell(0).getStringCellValue());
//把该行第二个单元格的内容给name
user.setName(row.getCell(1).getStringCellValue());
//把该行第三个单元格的内容给age
user.setAge(row.getCell(2).getStringCellValue());
//将得到的数据进行处理(可以存数据库等操作)
list.add(user);
}
System.out.println(list);
运行结果: