欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

poi 操作excel

程序员文章站 2022-03-06 22:14:20
...

1、removeRow(Row row):删除行,但不会实现下面行上移

2、shiftRows(int startRow, int endRow, n):start行到end行移动n行,n正上移,n负下移。合并过单元格的移动会报错

3、removeMergedRegion(int deleRow):删除样式

4、表、行、单元格循环的时候都是从0开始读

5、shiftRows无法向上移动,个人猜测,removeRow删除行只有在write方法调用后才生效,所以上移会出现合并的单元格无法移动。

public void func(Workbook wb) {
	for (int i = 0; i < wb.getNumberOfSheets(); i++) {
		Sheet sheet = wb.getSheetAt(i);
		for (int rr = 0; rr < sheet.getPhysicalNumberOfRows(); rr++) { // 遍历有记录的所有行,空行不记录
			Row row = sheet.getRow(rr);
			if (row == null) {
				continue;
			}
			for (int cc = 0; cc < row.getPhysicalNumberOfCells(); cc++) { // 遍历所有列,空列不记录
				Cell cell = row.getCell(cc);
				CellType cellType = cell.getCellTypeEnum();
				String value;
				switch (cellType) {
				case STRING:
					value = cell.getStringCellValue();
				case NUMERIC:
					value = String.valueOf(cell.getNumericCellValue());
				case BOOLEAN:
					value = String.valueOf(cell.getBooleanCellValue());
				default:
					value = "";
				}
				cell.setCellValue(value);
			}
		}
	}
}

 

相关标签: poi