1、引入依赖
使用poi技术,引入poi依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.2</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
2、编写方法
示例excel,执行前
执行代码,可直接复用
JSONArray jsonArray = new JSONArray();
//将数据库查询到的数据,存入jsonArray
List<User> users = userMapper.selectList(null);
for (User user:users) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("name",user.getName());
jsonObject.put("age",user.getAge());
jsonObject.put("email",user.getEmail());
jsonArray.add(jsonObject);
}
//读取模板
try {
FileInputStream inputStream =new FileInputStream("C:\\Users\\pzq\\Desktop\\测试excel.xlsx");
XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
XSSFSheet sheet = workbook.getSheetAt(0);//获取表中的第一个sheet
//获取后进行遍历数据库
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
//新增行
XSSFRow rowNew = sheet.createRow(1+i);//参数代表从第几行新增
//给新增行增加样式
XSSFCell cellName = rowNew.createCell(0);//第1列,代表name的位置
XSSFCell cellAge = rowNew.createCell(1);//第2列,代表age的位置
XSSFCell cellEmail = rowNew.createCell(2);//第3列,代表email的位置
cellName.setCellValue(jsonObject.getString("name"));
cellAge.setCellValue(jsonObject.getInteger("age"));
cellEmail.setCellValue(jsonObject.getString("email"));
}
workbook.write(new FileOutputStream("C:\\Users\\pzq\\Desktop\\测试excel结果.xlsx"));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
执行后,生成新文件,显示内容