java POI操作Excel HSSFSheet新增删除行

java | 2019-09-13 10:02:39

1.java POI操作Excel HSSFSheet新增行 

在excel中点击右键-插入,就直接插入一行了,可是用java 网上方法都搞得很难,其实也是炒鸡简单的。

HSSFWorkbook workbook = new HSSFWorkbook(inputStream);
HSSFSheet sheet=workbook.getSheetAt(0);
List<String> datas=null;//从数据库获取
int startRow=15;
sheet.shiftRows(startRow + 1, sheet.getLastRowNum(), datas.size,true,true);//一句代码就能搞定
for(String str:datas){
        startRow++;
        HSSFRow hssfRow = sheet.createRow(startRow);
        hssfRow.createCell(1).setCellValue(str);
}

我的场景就是在一个excel模板,中插入从数据库获取的数据的行数,然后把数据写到新行里面。

其实插入行就一句代码这么简单,没网上说的那么难:
sheet.shiftRows(startRow + 1, sheet.getLastRowNum(), datas.size,true,true);
//  Parameters:参数
//   startRow - the row to start shifting 从哪一行开始
//   endRow - the row to end shifting 结束行
//   n - the number of rows to shift  向下移动几行
//   copyRowHeight - whether to copy the row height during the shift 是否保持原来的行高
//   resetOriginalRowHeight - whether to set the original row's height to the default 是否要初始化新增行的高度

就是相当于从某一行开始把所有内容下移,然后就多出指定的几行。


2.java POI操作Excel HSSFSheet删除行 

其实删除行也是一样的,通过同一个方法移动的方式来实现。

sheet.shiftRows(startRowNum, sheet.getLastRowNum(), 0-contentRowNum,true,true);

//startRowNum你要删除的下一行
//contentRowNum你要删除的行数
这个代码的效果就是把要删除行下面的内容往上移动覆盖,来删除行。

登录后即可回复 登录 | 注册
    
关注编程学问公众号