通过java apache POI追加excel文件中的新行

我有一个现有的xlsx文件,在行1我有我的标题,我需要的是在2添加新行,当然移动一切下来,然后将我的数据添加到这一行。 你能帮我吗?

static void Append() throws EncryptedDocumentException, InvalidFormatException, IOException { InputStream inp = new FileInputStream("C:/workbook.xlsx"); Workbook wb = WorkbookFactory.create(inp); Sheet sheet = wb.getSheetAt(0); Row row = sheet.createRow((short) 2); sheet.shiftRows(1, sheet.getLastRowNum()+1, 1, true,true); row.createCell(0).setCellValue("A"); row.createCell(1).setCellValue("B"); row.createCell(2).setCellValue("This is a string"); row.createCell(3).setCellValue(true); // Write the output to a file FileOutputStream fileOut = new FileOutputStream("C:/workbook.xlsx"); wb.write(fileOut); fileOut.close(); } 

事实上shiftRows方法是这个需求的一个很好的select,你只需要更好地设置参数就可以了:

 ... // Shift of one row all the rows starting from the 3th row sheet.shiftRows(2, sheet.getLastRowNum(), 1, true, true); // Create my new 3th row Row row = sheet.createRow(2); ...