在Excel中插入行并复制单元格格式

it2023-04-06  83

标题工作需要在Excel中的sheet页中,插入行并复制上一行的单元格格式。注意是当前sheet页中的操作。跨sheet页或者跨Excel文件并不能使用。`

public static void main(String[] args) { try { File file = new File("C:/Users/hou/Desktop/审批单签名/ApprovalForm11.xlsx"); InputStream is = new FileInputStream(file); XSSFWorkbook workbook = new XSSFWorkbook(is); XSSFSheet expenseSheet = workbook.getSheetAt(0); insertRow(expenseSheet,11,1); FileOutputStream myxlsout = new FileOutputStream("C:/Users/hou/Desktop/审批单签名/workbook.xlsx"); workbook.write(myxlsout); myxlsout.close(); is.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void insertRow(XSSFSheet sheet, int startRow,int rows) { sheet.shiftRows(startRow + 1, sheet.getLastRowNum(), rows,true,false); for (int i = 0; i < rows; i++) { XSSFRow sourceRow = null; XSSFRow targetRow = null; sourceRow = sheet.getRow(startRow); targetRow = sheet.createRow(++startRow); targetRow.setHeight(sourceRow.getHeight()); XSSFCellStyle rowStyle = sourceRow.getRowStyle();//获取当前行样式 targetRow.setRowStyle(rowStyle); for (int col = 0; col < sourceRow.getLastCellNum(); col++) { XSSFCell sourceCell = sourceRow.getCell(col); XSSFCell targetCell = targetRow.createCell(col); if(null != sourceCell){ targetCell.setCellStyle(sourceCell.getCellStyle()); }else{ System.out.println("1111111"); } } } }`
最新回复(0)