/** * @param workbook * @param sheet * @param cell * @param data * @param label 单元格中显示的文件名 * @param fileName * @throws IOException */ public void addOlePackage(HSSFWorkbook workbook, HSSFSheet sheet, HSSFCell cell, byte[] data, String label, String fileName) throws IOException { InputStream systemResource = ClassLoader.getSystemResourceAsStream("static/images/excel.emf"); final byte[] bytes = IOUtils.toByteArray(systemResource); int picId = workbook.addPicture(bytes, PICTURE_TYPE_PNG); // fileName为打开的文件名 final int olePackage = workbook.addOlePackage(data, label, "summaryFile.xls", fileName); HSSFPatriarch drawingPatriarch = sheet.createDrawingPatriarch(); final int columnIndex = cell.getColumnIndex(); final int rowIndex = cell.getRowIndex(); HSSFClientAnchor anchor = new HSSFClientAnchor(10, 10, 0, 10, (short) columnIndex, rowIndex, (short) (columnIndex + 1), rowIndex + 1); anchor.setAnchorType(ClientAnchor.AnchorType.MOVE_AND_RESIZE); HSSFObjectData objectData = drawingPatriarch.createObjectData(anchor, olePackage, picId); objectData.resize(0.1, 0.5); }
POI excel中插入ole对象
于 2024-03-18 16:12:02 首次发布