POI筆記

年華是封無效信發表於2014-05-22
excel2003:HSSFWorkbook

excel2007:XSSFWorkbook

刪除行的資料:

sheet.removeRow(row);


刪除行:
sheet.shiftRows(a, b, -c);

a:起始行index

b:結束行Index

c:向上移動多少行

(1,5,-2) 表示把第二行到第六行上移2行


複製行到另一個檔案



/**
*
*
* @Title: setRow
* @Description: 複製行到另一個檔案
* @param sheet
* 目標檔案的sheet
* @param row
* 原始檔的row
* @param msgCell
* 在目標檔案行尾部列新增的內容 一般是異常資訊等
* @date: 2014年6月3日
* @return: void
* @throws
*
*/
public static void copyRow(Sheet sheet, Row row, String msgCell) {
int len = sheet.getLastRowNum();
Row myRow = sheet.createRow(len);
int clen = row.getLastCellNum();
for (int i = 0; i < clen; i++) {
Cell cell = row.getCell(i);
Cell myCell = myRow.createCell(i);
myCell.setCellStyle(cell.getCellStyle());
if (cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN)
myCell.setCellValue(cell.getBooleanCellValue());
else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
myCell.setCellValue(cell.getNumericCellValue());
else
myCell.setCellValue(cell.getStringCellValue());
}
if (msgCell != null) {
Cell mymsgcell = myRow.createCell(len);
mymsgcell.setCellValue(msgCell);
}
}