org.apache.poi.xssf.usermodel.XSSFClientAnchor Java Examples
The following examples show how to use
org.apache.poi.xssf.usermodel.XSSFClientAnchor.
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: PoiPublicUtil.java From autopoi with Apache License 2.0 | 6 votes |
/** * 获取Excel2007图片 * * @param sheet * 当前sheet对象 * @param workbook * 工作簿对象 * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData */ public static Map<String, PictureData> getSheetPictrues07(XSSFSheet sheet, XSSFWorkbook workbook) { Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>(); for (POIXMLDocumentPart dr : sheet.getRelations()) { if (dr instanceof XSSFDrawing) { XSSFDrawing drawing = (XSSFDrawing) dr; List<XSSFShape> shapes = drawing.getShapes(); for (XSSFShape shape : shapes) { XSSFPicture pic = (XSSFPicture) shape; XSSFClientAnchor anchor = pic.getPreferredSize(); CTMarker ctMarker = anchor.getFrom(); String picIndex = ctMarker.getRow() + "_" + ctMarker.getCol(); sheetIndexPicMap.put(picIndex, pic.getPictureData()); } } } return sheetIndexPicMap; }
Example #2
Source File: PoiPublicUtil.java From jeasypoi with Apache License 2.0 | 6 votes |
/** * 获取Excel2007图片 * * @param sheet * 当前sheet对象 * @param workbook * 工作簿对象 * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData */ public static Map<String, PictureData> getSheetPictrues07(XSSFSheet sheet, XSSFWorkbook workbook) { Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>(); for (POIXMLDocumentPart dr : sheet.getRelations()) { if (dr instanceof XSSFDrawing) { XSSFDrawing drawing = (XSSFDrawing) dr; List<XSSFShape> shapes = drawing.getShapes(); for (XSSFShape shape : shapes) { XSSFPicture pic = (XSSFPicture) shape; XSSFClientAnchor anchor = pic.getPreferredSize(); CTMarker ctMarker = anchor.getFrom(); String picIndex = ctMarker.getRow() + "_" + ctMarker.getCol(); sheetIndexPicMap.put(picIndex, pic.getPictureData()); } } } return sheetIndexPicMap; }
Example #3
Source File: WatermarkExcelTests.java From kbase-doc with Apache License 2.0 | 6 votes |
@Test public void testExcel() throws IOException { String filepath = "E:\\ConvertTester\\excel\\abcd.xlsx"; File originFile = new File(filepath); InputStream in = new FileInputStream(originFile); XSSFWorkbook workbook = new XSSFWorkbook(in); XSSFSheet sheet = workbook.createSheet("testSheet"); XSSFDrawing drawing = sheet.createDrawingPatriarch(); XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 1023, 255, (short) 2, 4, (short) 13, 26); XSSFTextBox textbox = drawing.createTextbox(anchor); XSSFRichTextString rtxt = new XSSFRichTextString("ekozhan"); XSSFFont font = workbook.createFont(); font.setColor((short) 27); font.setBold(true); font.setFontHeightInPoints((short) 192); font.setFontName("Verdana"); rtxt.applyFont(font); textbox.setText(rtxt); textbox.setLineStyle(XSSFShape.EMU_PER_POINT); textbox.setNoFill(true); workbook.write(new FileOutputStream(filepath)); workbook.close(); }
Example #4
Source File: PoiPublicUtil.java From easypoi with Apache License 2.0 | 6 votes |
/** * 获取Excel2007图片 * * @param sheet * 当前sheet对象 * @param workbook * 工作簿对象 * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData */ public static Map<String, PictureData> getSheetPictrues07(XSSFSheet sheet, XSSFWorkbook workbook) { Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>(); for (POIXMLDocumentPart dr : sheet.getRelations()) { if (dr instanceof XSSFDrawing) { XSSFDrawing drawing = (XSSFDrawing) dr; List<XSSFShape> shapes = drawing.getShapes(); for (XSSFShape shape : shapes) { XSSFPicture pic = (XSSFPicture) shape; XSSFClientAnchor anchor = pic.getPreferredSize(); CTMarker ctMarker = anchor.getFrom(); String picIndex = ctMarker.getRow() + "_" + ctMarker.getCol(); sheetIndexPicMap.put(picIndex, pic.getPictureData()); } } } return sheetIndexPicMap; }
Example #5
Source File: ExcelPublicUtil.java From jeewx with Apache License 2.0 | 6 votes |
/** * 获取Excel2007图片 * @param sheet 当前sheet对象 * @param workbook 工作簿对象 * @return Map key:图片单元格索引(1_1)String,value:图片流PictureData */ public static Map<String, PictureData> getSheetPictrues07( XSSFSheet sheet, XSSFWorkbook workbook) { Map<String, PictureData> sheetIndexPicMap = new HashMap<String, PictureData>(); for (POIXMLDocumentPart dr : sheet.getRelations()) { if (dr instanceof XSSFDrawing) { XSSFDrawing drawing = (XSSFDrawing) dr; List<XSSFShape> shapes = drawing.getShapes(); for (XSSFShape shape : shapes) { XSSFPicture pic = (XSSFPicture) shape; XSSFClientAnchor anchor = pic.getPreferredSize(); CTMarker ctMarker = anchor.getFrom(); String picIndex = ctMarker.getRow() + "_" + ctMarker.getCol(); sheetIndexPicMap.put(picIndex, pic.getPictureData()); } } } return sheetIndexPicMap; }
Example #6
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 #7
Source File: WatermarkExcelTests.java From kbase-doc with Apache License 2.0 | 5 votes |
@Test public void test1() throws IOException { ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream(); String imgPath = "D:\\Xiaoi\\logo\\logo.png"; BufferedImage bufferImg = ImageIO.read(new File(imgPath)); //这里要注意,第二个参数将会决定插入图片形式,如果是一个png的图片,背景透明,但是此处设置为jpg格式将会自动添加黑色背景 ImageIO.write(bufferImg, "png", byteArrayOut); String filepath = "E:\\ConvertTester\\excel\\abcde.xlsx"; File originFile = new File(filepath); InputStream in = new FileInputStream(originFile); XSSFWorkbook workbook = new XSSFWorkbook(in); XSSFSheet sheet = workbook.createSheet("testSheet"); //画图的顶级管理器,一个sheet只能获取一个 XSSFDrawing drawing = sheet.createDrawingPatriarch(); //anchor主要用于设置图片的属性 // XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 1023, 255, (short) 2, 4, (short) 13, 26); /* * 参数定义: * 第一个参数是(x轴的开始节点); * 第二个参数是(是y轴的开始节点); * 第三个参数是(是x轴的结束节点); * 第四个参数是(是y轴的结束节点); * 第五个参数是(是从Excel的第几列开始插入图片,从0开始计数); * 第六个参数是(是从excel的第几行开始插入图片,从0开始计数); * 第七个参数是(图片宽度,共多少列); * 第8个参数是(图片高度,共多少行); */ XSSFClientAnchor anchor = drawing.createAnchor(0, 0, Short.MAX_VALUE, Integer.MAX_VALUE, 0, 0, 10, 10); anchor.setAnchorType(AnchorType.DONT_MOVE_DO_RESIZE); //插入图片 drawing.createPicture(anchor, workbook.addPicture(byteArrayOut.toByteArray(), XSSFWorkbook.PICTURE_TYPE_PNG)); workbook.write(new FileOutputStream("E:\\ConvertTester\\excel\\abcd-011.xlsx")); workbook.close(); }
Example #8
Source File: WatermarkExcelTests.java From kbase-doc with Apache License 2.0 | 5 votes |
@Test public void testExcel2() throws IOException { String filepath = "E:\\ConvertTester\\excel\\abcd.xlsx"; File originFile = new File(filepath); InputStream in = new FileInputStream(originFile); XSSFWorkbook workbook = new XSSFWorkbook(in); XSSFSheet sheet = workbook.createSheet("testSheet"); XSSFDrawing drawing = sheet.createDrawingPatriarch(); XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 1023, 255, (short) 2, 4, (short) 13, 26); }
Example #9
Source File: SimpleUtils.java From bamboobsc with Apache License 2.0 | 5 votes |
public static void setCellPicture(XSSFWorkbook wb, XSSFSheet sh, byte[] iconBytes, int row, int col) throws Exception { int myPictureId = wb.addPicture(iconBytes, XSSFWorkbook.PICTURE_TYPE_PNG); XSSFDrawing drawing = sh.createDrawingPatriarch(); XSSFClientAnchor myAnchor = new XSSFClientAnchor(); myAnchor.setCol1(col); myAnchor.setRow1(row); XSSFPicture myPicture = drawing.createPicture(myAnchor, myPictureId); myPicture.resize(); }
Example #10
Source File: ExcelExport.java From frpMgr with MIT License | 4 votes |
/** * 创建工作表 * @param sheetName 指定Sheet名称 * @param title 表格标题,传“空值”,表示无标题 * @param headerList 表头字段设置 * @param headerWidthList 表头字段宽度设置 */ public void createSheet(String sheetName, String title, List<String> headerList, List<Integer> headerWidthList) { this.sheet = wb.createSheet(StringUtils.defaultString(sheetName, StringUtils.defaultString(title, "Sheet1"))); this.styles = createStyles(wb); this.rownum = 0; // Create title if (StringUtils.isNotBlank(title)){ Row titleRow = sheet.createRow(rownum++); titleRow.setHeightInPoints(30); Cell titleCell = titleRow.createCell(0); titleCell.setCellStyle(styles.get("title")); titleCell.setCellValue(title); sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), titleRow.getRowNum(), titleRow.getRowNum(), headerList.size()-1)); } // Create header if (headerList == null){ throw new ExcelException("headerList not null!"); } Row headerRow = sheet.createRow(rownum++); headerRow.setHeightInPoints(16); for (int i = 0; i < headerList.size(); i++) { Cell cell = headerRow.createCell(i); cell.setCellStyle(styles.get("header")); String[] ss = StringUtils.split(headerList.get(i), "**", 2); if (ss.length==2){ cell.setCellValue(ss[0]); Comment comment = this.sheet.createDrawingPatriarch().createCellComment( new XSSFClientAnchor(0, 0, 0, 0, (short) 3, 3, (short) 5, 6)); comment.setRow(cell.getRowIndex()); comment.setColumn(cell.getColumnIndex()); comment.setString(new XSSFRichTextString(ss[1])); cell.setCellComment(comment); }else{ cell.setCellValue(headerList.get(i)); } // sheet.autoSizeColumn(i); } boolean isDefWidth = (headerWidthList != null && headerWidthList.size() == headerList.size()); for (int i = 0; i < headerList.size(); i++) { int colWidth = -1; if (isDefWidth){ colWidth = headerWidthList.get(i); } if (colWidth == -1){ colWidth = sheet.getColumnWidth(i)*2; colWidth = colWidth < 3000 ? 3000 : colWidth; } if (colWidth == 0){ sheet.setColumnHidden(i, true); }else{ sheet.setColumnWidth(i, colWidth); } } log.debug("Create sheet {} success.", sheetName); }
Example #11
Source File: ExportExcel.java From NutzSite with Apache License 2.0 | 4 votes |
/** * 初始化函数 * @param title 表格标题,传“空值”,表示无标题 * @param headerList 表头列表 */ private void initialize(String title, List<String> headerList) { this.wb = new SXSSFWorkbook(500); this.sheet = wb.createSheet("Export"); this.styles = createStyles(wb); // Create title if (StringUtils.isNotBlank(title)){ Row titleRow = sheet.createRow(rownum++); titleRow.setHeightInPoints(30); Cell titleCell = titleRow.createCell(0); titleCell.setCellStyle(styles.get("title")); titleCell.setCellValue(title); sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), titleRow.getRowNum(), titleRow.getRowNum(), headerList.size()-1)); } // Create header if (headerList == null){ throw new RuntimeException("headerList not null!"); } Row headerRow = sheet.createRow(rownum++); headerRow.setHeightInPoints(16); for (int i = 0; i < headerList.size(); i++) { Cell cell = headerRow.createCell(i); cell.setCellStyle(styles.get("header")); String[] ss = StringUtils.split(headerList.get(i), "**", 2); if (ss.length==2){ cell.setCellValue(ss[0]); Comment comment = this.sheet.createDrawingPatriarch().createCellComment( new XSSFClientAnchor(0, 0, 0, 0, (short) 3, 3, (short) 5, 6)); comment.setString(new XSSFRichTextString(ss[1])); cell.setCellComment(comment); }else{ cell.setCellValue(headerList.get(i)); } sheet.autoSizeColumn(i); } for (int i = 0; i < headerList.size(); i++) { int colWidth = sheet.getColumnWidth(i)*2; sheet.setColumnWidth(i, colWidth < 3000 ? 3000 : colWidth); } log.debug("Initialize success."); }
Example #12
Source File: ExportExcel.java From Shop-for-JavaWeb with MIT License | 4 votes |
/** * 初始化函数 * @param title 表格标题,传“空值”,表示无标题 * @param headerList 表头列表 */ private void initialize(String title, List<String> headerList) { this.wb = new SXSSFWorkbook(500); this.sheet = wb.createSheet("Export"); this.styles = createStyles(wb); // Create title if (StringUtils.isNotBlank(title)){ Row titleRow = sheet.createRow(rownum++); titleRow.setHeightInPoints(30); Cell titleCell = titleRow.createCell(0); titleCell.setCellStyle(styles.get("title")); titleCell.setCellValue(title); sheet.addMergedRegion(new CellRangeAddress(titleRow.getRowNum(), titleRow.getRowNum(), titleRow.getRowNum(), headerList.size()-1)); } // Create header if (headerList == null){ throw new RuntimeException("headerList not null!"); } Row headerRow = sheet.createRow(rownum++); headerRow.setHeightInPoints(16); for (int i = 0; i < headerList.size(); i++) { Cell cell = headerRow.createCell(i); cell.setCellStyle(styles.get("header")); String[] ss = StringUtils.split(headerList.get(i), "**", 2); if (ss.length==2){ cell.setCellValue(ss[0]); Comment comment = this.sheet.createDrawingPatriarch().createCellComment( new XSSFClientAnchor(0, 0, 0, 0, (short) 3, 3, (short) 5, 6)); comment.setString(new XSSFRichTextString(ss[1])); cell.setCellComment(comment); }else{ cell.setCellValue(headerList.get(i)); } sheet.autoSizeColumn(i); } for (int i = 0; i < headerList.size(); i++) { int colWidth = sheet.getColumnWidth(i)*2; sheet.setColumnWidth(i, colWidth < 3000 ? 3000 : colWidth); } log.debug("Initialize success."); }
Example #13
Source File: ExcelExportOfTemplateUtil.java From jeewx with Apache License 2.0 | 4 votes |
/** * 图片类型的Cell * * @param patriarch * * @param entity * @param row * @param i * @param string * @param obj * @param workbook * @throws Exception */ private static void createImageCell(Drawing patriarch, ExcelExportEntity entity, Row row, int i, String field, Object obj, Workbook workbook) throws Exception { if(StringUtils.isEmpty(field)){return;} row.setHeight((short) (50 * entity.getHeight())); row.createCell(i); ClientAnchor anchor = workbook instanceof HSSFWorkbook? new HSSFClientAnchor(0, 0, 0, 0, (short) i, row.getRowNum(), (short) (i + 1), row.getRowNum() + 1): new XSSFClientAnchor(0, 0, 0, 0, (short) i, row.getRowNum(), (short) (i + 1), row.getRowNum() + 1); if (entity.getExportImageType() == 1) { ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream(); BufferedImage bufferImg; try { String path = ExcelExportOfTemplateUtil.class.getClassLoader() .getResource("") + field; path = path.replace("WEB-INF/classes/", ""); path = path.replace("file:/", ""); bufferImg = ImageIO.read(new File(path)); ImageIO.write( bufferImg, field.substring(field.indexOf(".") + 1, field.length()), byteArrayOut); patriarch.createPicture( anchor, row.getSheet() .getWorkbook() .addPicture(byteArrayOut.toByteArray(), Workbook.PICTURE_TYPE_JPEG)); } catch (IOException e) { e.printStackTrace(); } } else { byte[] value = (byte[]) (entity.getGetMethods() != null ? getFieldBySomeMethod( entity.getGetMethods(), obj) : entity.getGetMethod() .invoke(obj, new Object[] {})); if (value != null) { patriarch.createPicture(anchor, row.getSheet().getWorkbook() .addPicture(value, Workbook.PICTURE_TYPE_JPEG)); } } }
Example #14
Source File: ExcelHelp.java From hy.common.report with Apache License 2.0 | 2 votes |
/** * 复制锚。用于2007的Excel文件 * * @author ZhengWei(HY) * @createDate 2017-03-19 * @version v1.0 * * @param i_FromAnchor * @param i_ToAnchor * @param i_OffsetRow 偏移行号 */ public final static void copyClientAnchor(XSSFClientAnchor i_FromAnchor ,XSSFClientAnchor i_ToAnchor ,int i_OffsetRow) { copyCTMarker(i_FromAnchor.getFrom() ,i_ToAnchor.getFrom() ,i_OffsetRow); copyCTMarker(i_FromAnchor.getTo() ,i_ToAnchor.getTo() ,i_OffsetRow); }