1.java POI操作Excel HSSFSheet新增行
在excel中点击右键-插入,就直接插入一行了,可是用java 网上方法都搞得很难,其实也是炒鸡简单的。HSSFWorkbook workbook = new HSSFWorkbook(inputStream);
HSSFSheet sheet=workbook.getSheetAt(0);
List 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你要删除的行数
这个代码的效果就是把要删除行下面的内容往上移动覆盖,来删除行。