java apache POI操作Excel的一些小技巧

最近在开发一个处理数据的程序,期间需要对单元格的缓存值进行处理,在网上找到一些资料,自己尝试着实现下。

一、Apache-POI操作Excel将合并后的单元格全部填充为相同数据的一个实例。

private static void fillMergedRegion(final Sheet sheet) {
    for (int i = 0; i < sheet.getNumMergedRegions(); i++) {
        int startRow = sheet.getMergedRegion(i).getFirstRow();
        int endRow = sheet.getMergedRegion(i).getLastRow();
        int startColumn = sheet.getMergedRegion(i).getFirstColumn();
        int endColumn = sheet.getMergedRegion(i).getLastColumn();
        String value = getStringValue(sheet.getRow(startRow).getCell(startColumn));
 
        for (int row = startRow; row <= endRow; row++) {
            for (int column = startColumn; column <= endColumn; column++) {
                sheet.getRow(row).getCell(column).setCellValue(value);
            }
        }
    }
}

二、 Apache-POI操作Excel获得单元格内容

public static String getStringValue(Cell cell) {
        if (cell == null) {
            return StringConst.EMPTY_STRING;
        }
 
        // get the type of cell, and transform it
        if (Cell.CELL_TYPE_FORMULA == cell.getCellType()) {
            switch (cell.getCachedFormulaResultType()) {
            // if it is mumeric type
            case Cell.CELL_TYPE_NUMERIC:
 
                return new DataFormatter().createFormat(cell).format(cell.getNumericCellValue());
                // if it is string type
            case Cell.CELL_TYPE_STRING:
                return cell.getRichStringCellValue().toString();
 
            }
        }
        return new DataFormatter().formatCellValue(cell);
    }


你可能感兴趣的:(java)