大家好,这是我的第一篇博客,不足之处还请见谅。
今天主要讲一个问题:怎么利用spring boot把数据添加到已有的Excel模板当中。
我们以在第3行第3列,第3行第4列分别插入“你”,“好”为例。不多说了,上代码:
InputStream is =
new FileInputStream(new File(模板文件的路径));
Workbook workbook = new XSSFWorkbook(is);
大家注意XSSFWorkbook有多款构造方法,可以不传参(新建一个工作簿),可以传入一个文件或流(打开已有的模板)。
org.apache.poi.ss.usermodel.Sheet sheet =workbook.getSheetAt(0); //获取到第一个工作表
接下来,肯定有人这样写:sheet.getRow(2).getCell(2).setCellValue(“你”);
结果就是空指针异常。
我们应该这样写:
Row row3=sheet.createRow(2);
row3.createCell(2).setCellValue(“你”);
row3.createCell(3).setCellValue(“好”);
大家注意:sheet.createRow(2)是在原模版的基础上新建第三行,自带原模版的样式,完全可以满足需求!!
这样就成功了!
注意,不要这样:
sheet.createRow(2).createCell(2).setCellValue(“你”);
sheet.createRow(2).createCell(3).setCellValue(“好”);
如果你这样写的话,你就会发现在第三行只有一个好字,“你”没有了!!
原因就是当你第二次 sheet.createRow(2)时会清空第三行的数据。