POI个人使用小记

个人使用POI 常见知识点记录

  1. 导出图片跑文件
public static void createImage(HSSFWorkbook wb, HSSFSheet sheet, String imagePath) throws IOException
{
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
BufferedImage bufferImg = ImageIO.read(new File(imagePath));
ImageIO.write(bufferImg, "jpg", byteArrayOut);
// 画图的顶级管理器,一个sheet只能获取一个(一定要注意这点)
HSSFPatriarch patriarch = sheet.createDrawingPatriarch();
// anchor主要用于设置图片的属性 (1,1)表示开始列、行,(9,9)结束列、行 前面四位是微调
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 255, 255, (short) 1, 1, (short) 9, 9);
anchor.setAnchorType(3);
// 插入图片
patriarch.createPicture(anchor, wb.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_JPEG));
}

2 .创建单元格工具类

public static void createCell(HSSFRow row, HSSFCellStyle style, 
            String value, int index)
    {
        HSSFCell cell = row.createCell(index);
        row.setHeightInPoints(400);
        if(null != style)
        {
            style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
            style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
            style.setBorderRight(HSSFCellStyle.BORDER_THIN);
            style.setBorderTop(HSSFCellStyle.BORDER_THIN);
            cell.setCellStyle(style);
        }
        cell.setCellValue(value);
    }

3.添加数据合并单元格

//导入poi这个包
    org.apache.poi.ss.util.CellRangeAddress
    // 合并单元格(startRow,endRow,startColumn,endColumn)
    sheet.addMergedRegion(new CellRangeAddress(0, 0, 10, 10));
        // 非表头合并单元格,值只会保留一个单元格数据

4.设置超链接

// 创建超链接
HSSFHyperlink link = new HSSFHyperlink(HSSFHyperlink.LINK_URL);
link.setAddress("http://www.baidu.com");
cell = row.createCell(1);
cell.setCellValue("百度");
cell.setHyperlink(link);// 设定单元格的链接

5.模板中常用操作

(1)克隆sheet页-图表模板无法赋值     
    HSSFSheet sheet = workbook.cloneSheet(0);
    int sheetIndex = workbook.getSheetIndex(sheet);
    workbook.setSheetName(sheetIndex, "性能");
(2) 删除sheet
    workbook.removeSheetAt(index);
    删除多个模板文件index是变化的,如删除前三个sheet
    workbook.removeSheetAt(0);
    workbook.removeSheetAt(0);
    workbook.removeSheetAt(0);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值