您的位置:首页 > 其它

POI个人使用小记

2017-08-14 23:38 435 查看
个人使用POI 常见知识点记录

导出图片跑文件

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  poi