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你要删除的行数
这个代码的效果就是把要删除行下面的内容往上移动覆盖,来删除行。