注意此例需要jxls的支持 :
/**
* insert row into the target sheet, the style of cell is the same as startRow
* @param wb
* @param sheet
* @param starRow - the row to start shifting
* @param rows
*/
public static void insertRow(HSSFWorkbook wb, HSSFSheet sheet, int startRow,int rows) {
sheet.shiftRows(startRow + 1, sheet.getLastRowNum(), rows,true,false);
// 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
for (int i = 0; i < rows; i++) {
HSSFRow sourceRow = null;
HSSFRow targetRow = null;
sourceRow = sheet.getRow(startRow);
targetRow = sheet.createRow(++startRow);
Util.copyRow(sheet, sourceRow, targetRow);
}
}
插入行会继承第“startRow”行的样式,实际上就是拷贝“startRow”,甚至包括合并的单元格
参考了http://blog.csdn.net/daemon_boy/archive/2007/09/15/1786384.aspx的代码