标题工作需要在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");
}
}
}
}`