Java Code Examples for org.apache.poi.ss.usermodel.Sheet#createDrawingPatriarch()
The following examples show how to use
org.apache.poi.ss.usermodel.Sheet#createDrawingPatriarch() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: AbstractExcelWriteExecutor.java From easyexcel with Apache License 2.0 | 7 votes |
private void setImageValue(CellData cellData, Cell cell) { Sheet sheet = cell.getSheet(); int index = sheet.getWorkbook().addPicture(cellData.getImageValue(), HSSFWorkbook.PICTURE_TYPE_PNG); Drawing drawing = sheet.getDrawingPatriarch(); if (drawing == null) { drawing = sheet.createDrawingPatriarch(); } CreationHelper helper = sheet.getWorkbook().getCreationHelper(); ClientAnchor anchor = helper.createClientAnchor(); anchor.setDx1(0); anchor.setDx2(0); anchor.setDy1(0); anchor.setDy2(0); anchor.setCol1(cell.getColumnIndex()); anchor.setCol2(cell.getColumnIndex() + 1); anchor.setRow1(cell.getRowIndex()); anchor.setRow2(cell.getRowIndex() + 1); anchor.setAnchorType(ClientAnchor.AnchorType.DONT_MOVE_AND_RESIZE); drawing.createPicture(anchor, index); }
Example 2
Source File: ExcelExportOfTemplateUtil.java From jeewx with Apache License 2.0 | 6 votes |
/** * 往Sheet 填充正常数据 * * @param params * @param pojoClass * @param dataSet * @param workbook */ private static void addDataToSheet(TemplateExportParams params, Class<?> pojoClass, Collection<?> dataSet, Sheet sheet, Workbook workbook) throws Exception { Drawing patriarch = sheet.createDrawingPatriarch(); List<ExcelExportEntity> excelParams = new ArrayList<ExcelExportEntity>(); // 得到所有字段 Field fileds[] = ExcelPublicUtil.getClassFields(pojoClass); ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class); String targetId = null; if (etarget != null) { targetId = etarget.id(); } getAllExcelField(targetId, fileds, excelParams, pojoClass, null); sortAllParams(excelParams); Iterator<?> its = dataSet.iterator(); int index = sheet.getLastRowNum(); while (its.hasNext()) { Object t = its.next(); index += createCells(patriarch, index, t, excelParams, sheet, workbook); } }
Example 3
Source File: ExcelExportOfTemplateUtil.java From autopoi with Apache License 2.0 | 5 votes |
/** * 往Sheet 填充正常数据,根据表头信息 使用导入的部分逻辑,坐对象映射 * * @param teplateParams * @param pojoClass * @param dataSet * @param workbook */ private void addDataToSheet(Class<?> pojoClass, Collection<?> dataSet, Sheet sheet, Workbook workbook) throws Exception { if (workbook instanceof XSSFWorkbook) { super.type = ExcelType.XSSF; } // 获取表头数据 Map<String, Integer> titlemap = getTitleMap(sheet); Drawing patriarch = sheet.createDrawingPatriarch(); // 得到所有字段 Field[] fileds = PoiPublicUtil.getClassFields(pojoClass); ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class); String targetId = null; if (etarget != null) { targetId = etarget.value(); } // 获取实体对象的导出数据 List<ExcelExportEntity> excelParams = new ArrayList<ExcelExportEntity>(); getAllExcelField(null, targetId, fileds, excelParams, pojoClass, null); // 根据表头进行筛选排序 sortAndFilterExportField(excelParams, titlemap); short rowHeight = getRowHeight(excelParams); int index = teplateParams.getHeadingRows() + teplateParams.getHeadingStartRow(), titleHeight = index; // 下移数据,模拟插入 sheet.shiftRows(teplateParams.getHeadingRows() + teplateParams.getHeadingStartRow(), sheet.getLastRowNum(), getShiftRows(dataSet, excelParams), true, true); if (excelParams.size() == 0) { return; } Iterator<?> its = dataSet.iterator(); while (its.hasNext()) { Object t = its.next(); index += createCells(patriarch, index, t, excelParams, sheet, workbook, rowHeight); } // 合并同类项 mergeCells(sheet, excelParams, titleHeight); }
Example 4
Source File: CommentWriteHandler.java From easyexcel with Apache License 2.0 | 5 votes |
@Override public void afterRowDispose(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder, Row row, Integer relativeRowIndex, Boolean isHead) { if (isHead) { Sheet sheet = writeSheetHolder.getSheet(); Drawing<?> drawingPatriarch = sheet.createDrawingPatriarch(); // 在第一行 第二列创建一个批注 Comment comment = drawingPatriarch.createCellComment(new XSSFClientAnchor(0, 0, 0, 0, (short)1, 0, (short)2, 1)); // 输入批注信息 comment.setString(new XSSFRichTextString("创建批注!")); // 将批注添加到单元格对象中 sheet.getRow(0).getCell(1).setCellComment(comment); } }
Example 5
Source File: ExcelExportOfTemplateUtil.java From jeasypoi with Apache License 2.0 | 5 votes |
/** * 往Sheet 填充正常数据,根据表头信息 使用导入的部分逻辑,坐对象映射 * * @param teplateParams * @param pojoClass * @param dataSet * @param workbook */ private void addDataToSheet(Class<?> pojoClass, Collection<?> dataSet, Sheet sheet, Workbook workbook) throws Exception { if (workbook instanceof XSSFWorkbook) { super.type = ExcelType.XSSF; } // 获取表头数据 Map<String, Integer> titlemap = getTitleMap(sheet); Drawing patriarch = sheet.createDrawingPatriarch(); // 得到所有字段 Field[] fileds = PoiPublicUtil.getClassFields(pojoClass); ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class); String targetId = null; if (etarget != null) { targetId = etarget.value(); } // 获取实体对象的导出数据 List<ExcelExportEntity> excelParams = new ArrayList<ExcelExportEntity>(); getAllExcelField(null, targetId, fileds, excelParams, pojoClass, null); // 根据表头进行筛选排序 sortAndFilterExportField(excelParams, titlemap); short rowHeight = getRowHeight(excelParams); int index = teplateParams.getHeadingRows() + teplateParams.getHeadingStartRow(), titleHeight = index; // 下移数据,模拟插入 sheet.shiftRows(teplateParams.getHeadingRows() + teplateParams.getHeadingStartRow(), sheet.getLastRowNum(), getShiftRows(dataSet, excelParams), true, true); if (excelParams.size() == 0) { return; } Iterator<?> its = dataSet.iterator(); while (its.hasNext()) { Object t = its.next(); index += createCells(patriarch, index, t, excelParams, sheet, workbook, rowHeight); } // 合并同类项 mergeCells(sheet, excelParams, titleHeight); }
Example 6
Source File: WatermarkExcelTests.java From kbase-doc with Apache License 2.0 | 5 votes |
@Test public void test2() throws IOException { //create a new workbook XSSFWorkbook wb = new XSSFWorkbook(); //or new HSSFWorkbook(); String imgPath = "D:\\Xiaoi\\logo\\logo.png"; //add picture data to this workbook. InputStream is = new FileInputStream(imgPath); byte[] bytes = IOUtils.toByteArray(is); int pictureIdx = wb.addPicture(bytes, XSSFWorkbook.PICTURE_TYPE_PNG); is.close(); CreationHelper helper = wb.getCreationHelper(); //create sheet Sheet sheet = wb.createSheet(); // Create the drawing patriarch. This is the top level container for all shapes. Drawing drawing = sheet.createDrawingPatriarch(); //add a picture shape ClientAnchor anchor = helper.createClientAnchor(); //set top-left corner of the picture, //subsequent call of Picture#resize() will operate relative to it anchor.setCol1(3); anchor.setRow1(2); anchor.setAnchorType(AnchorType.DONT_MOVE_AND_RESIZE); Picture pict = drawing.createPicture(anchor, pictureIdx); //auto-size picture relative to its top-left corner pict.resize(); //save workbook String file = "E:\\ConvertTester\\excel\\picture.xls"; if(wb instanceof XSSFWorkbook) file += "x"; try (OutputStream fileOut = new FileOutputStream(file)) { wb.write(fileOut); } }
Example 7
Source File: ExcelExportOfTemplateUtil.java From easypoi with Apache License 2.0 | 5 votes |
/** * 往Sheet 填充正常数据,根据表头信息 使用导入的部分逻辑,坐对象映射 * * @param teplateParams * @param pojoClass * @param dataSet * @param workbook */ private void addDataToSheet(Class<?> pojoClass, Collection<?> dataSet, Sheet sheet, Workbook workbook) throws Exception { if (workbook instanceof XSSFWorkbook) { super.type = ExcelType.XSSF; } // 获取表头数据 Map<String, Integer> titlemap = getTitleMap(sheet); Drawing patriarch = sheet.createDrawingPatriarch(); // 得到所有字段 Field[] fileds = PoiPublicUtil.getClassFields(pojoClass); ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class); String targetId = null; if (etarget != null) { targetId = etarget.value(); } // 获取实体对象的导出数据 List<ExcelExportEntity> excelParams = new ArrayList<ExcelExportEntity>(); getAllExcelField(null, targetId, fileds, excelParams, pojoClass, null); // 根据表头进行筛选排序 sortAndFilterExportField(excelParams, titlemap); short rowHeight = getRowHeight(excelParams); int index = teplateParams.getHeadingRows() + teplateParams.getHeadingStartRow(), titleHeight = index; //下移数据,模拟插入 sheet.shiftRows(teplateParams.getHeadingRows() + teplateParams.getHeadingStartRow(), sheet.getLastRowNum(), getShiftRows(dataSet, excelParams), true, true); if (excelParams.size() == 0) { return; } Iterator<?> its = dataSet.iterator(); while (its.hasNext()) { Object t = its.next(); index += createCells(patriarch, index, t, excelParams, sheet, workbook, rowHeight); } // 合并同类项 mergeCells(sheet, excelParams, titleHeight); }
Example 8
Source File: ExcelExportUtil.java From jeewx with Apache License 2.0 | 5 votes |
public static void createSheetInUserModel2File(HSSFWorkbook workbook, ExcelTitle entity, Class<?> pojoClass, Collection<?> dataSet) { try { Sheet sheet = workbook.createSheet(entity.getSheetName()); //创建表格属性 Map<String,HSSFCellStyle> styles = createStyles(workbook); Drawing patriarch = sheet.createDrawingPatriarch(); List<ExcelExportEntity> excelParams = new ArrayList<ExcelExportEntity>(); // 得到所有字段 Field fileds[] = ExcelPublicUtil.getClassFields(pojoClass); ExcelTarget etarget = pojoClass.getAnnotation(ExcelTarget.class); String targetId = null; if (etarget != null) { targetId = etarget.id(); } getAllExcelField(targetId, fileds, excelParams, pojoClass, null); sortAllParams(excelParams); int index = 0; int feildWidth = getFieldWidth(excelParams); if (entity.getTitle() != null) { int i = createHeaderRow(entity, sheet, workbook, feildWidth); sheet.createFreezePane(0, 2+i, 0, 2+i); index += i; } else { sheet.createFreezePane(0, 2, 0, 2); } createTitleRow(entity,sheet, workbook, index, excelParams); index += 2; setCellWith(excelParams, sheet); Iterator<?> its = dataSet.iterator(); while (its.hasNext()) { Object t = its.next(); index += createCells(patriarch,index, t, excelParams, sheet, workbook ,styles); } } catch (Exception e) { e.printStackTrace(); } }
Example 9
Source File: AbstractExcelFactory.java From myexcel with Apache License 2.0 | 4 votes |
private void setImage(Td td, Sheet sheet) { if (td.getFile() == null) { return; } try { if (createHelper == null) { createHelper = workbook.getCreationHelper(); } byte[] bytes = Files.readAllBytes(td.getFile().toPath()); String fileName = td.getFile().getName(); int format; String suffix = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase(); switch (suffix) { case "jpg": case "jpeg": format = Workbook.PICTURE_TYPE_JPEG; break; case "png": format = Workbook.PICTURE_TYPE_PNG; break; case "dib": format = Workbook.PICTURE_TYPE_DIB; break; case "emf": format = Workbook.PICTURE_TYPE_EMF; break; case "pict": format = Workbook.PICTURE_TYPE_PICT; break; case "wmf": format = Workbook.PICTURE_TYPE_WMF; break; default: throw new IllegalArgumentException("Invalid image type"); } int pictureIdx = workbook.addPicture(bytes, format); Drawing drawing = sheet.createDrawingPatriarch(); ClientAnchor anchor = createHelper.createClientAnchor(); anchor.setCol1(td.getCol()); anchor.setRow1(td.getRow()); Picture pict = drawing.createPicture(anchor, pictureIdx); pict.resize(1, 1); } catch (IOException e) { throw new RuntimeException(e); } }
Example 10
Source File: DefaultCellCommentHandler.java From xlsmapper with Apache License 2.0 | 4 votes |
@Override public void handleSave(final Cell cell, final Optional<String> text, final Optional<XlsCommentOption> commentOption) { if(!text.isPresent()) { // コメントが空のとき commentOption.ifPresent(option -> { if(option.removeIfEmpty()) { // コメントが空のとき既存のコメントを削除する cell.removeCellComment(); } }); return; } final Sheet sheet = cell.getSheet(); final CreationHelper helper = sheet.getWorkbook().getCreationHelper(); final Drawing<?> drawing = sheet.createDrawingPatriarch(); final Comment comment; RichTextString richText = helper.createRichTextString(text.get()); if(cell.getCellComment() == null) { ClientAnchor anchor = createAnchor(drawing, text.get(), cell, commentOption); comment = drawing.createCellComment(anchor); applyCommentFormat(richText, cell); } else { // 既存のコメントが存在する場合は、書式やサイズをコピーして使用する。 comment = cell.getCellComment(); RichTextString orgText = comment.getString(); if(orgText.numFormattingRuns() > 0) { copyCommentFormat(richText, orgText); } else { applyCommentFormat(richText, cell); } } comment.setString(richText); // コメントの表示状態の更新 commentOption.ifPresent(option -> comment.setVisible(option.visible())); cell.setCellComment(comment); }