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);
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fullstack_lth

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值