List of usage examples for org.apache.poi.hssf.usermodel HSSFCellStyle getFont
public HSSFFont getFont(org.apache.poi.ss.usermodel.Workbook parentWorkbook)
From source file:org.sysmodb.xml.HSSFXMLStyleHelper.java
License:BSD License
@Override public void writeFontProperties(XMLStreamWriter xmlWriter, CellStyle style) throws XMLStreamException { HSSFCellStyle newStyle = (HSSFCellStyle) style; HSSFFont font = newStyle.getFont(workbook); if (font.getBold()) { xmlWriter.writeStartElement("font-weight"); xmlWriter.writeCharacters("bold"); xmlWriter.writeEndElement();/* ww w.j a v a 2 s. c o m*/ } if (font.getItalic()) { xmlWriter.writeStartElement("font-style"); xmlWriter.writeCharacters("italics"); xmlWriter.writeEndElement(); } if (font.getUnderline() != HSSFFont.U_NONE) { xmlWriter.writeStartElement("text-decoration"); xmlWriter.writeCharacters("underline"); xmlWriter.writeEndElement(); } // Ignore same-ish defaults if (font.getFontHeightInPoints() != 10 && font.getFontHeightInPoints() != 11) { xmlWriter.writeStartElement("font-size"); xmlWriter.writeCharacters(String.valueOf(font.getFontHeightInPoints() + "pt")); xmlWriter.writeEndElement(); } // Arial is default for Excel, Calibri is default for OO if (!font.getFontName().equals("Arial") && !font.getFontName().equals("Calibri")) { xmlWriter.writeStartElement("font-family"); xmlWriter.writeCharacters(font.getFontName()); xmlWriter.writeEndElement(); } if ((font.getColor() != HSSFFont.COLOR_NORMAL) && (getRGBString(font.getColor()) != null) && !getRGBString(font.getColor()).equals("#000")) { xmlWriter.writeStartElement("color"); xmlWriter.writeCharacters(getRGBString(font.getColor())); xmlWriter.writeEndElement(); } }
From source file:ro.nextreports.engine.exporter.XlsExporter.java
License:Apache License
private void renderCell(BandElement bandElement, String bandName, Object value, int gridRow, int sheetRow, int sheetColumn, int rowSpan, int colSpan, boolean image) { if (bandElement instanceof ReportBandElement) { colSpan = 1;// w ww .j av a2 s . c o m } HSSFCellStyle cellStyle = buildBandElementStyle(bandElement, value, gridRow, sheetColumn, colSpan); // if we have a subreport on the current grid row we have to take care of the sheetColumn if (ReportLayout.HEADER_BAND_NAME.equals(bandName) && (gridRow == prevSubreportFirstRow) && (prevSubreportLastColumn != -1)) { sheetColumn = prevSubreportLastColumn - prevSubreportFirstColumn - 1 + sheetColumn; } HSSFCell c = xlsRow.createCell(sheetColumn); if (image) { if ((value == null) || "".equals(value)) { c.setCellType(HSSFCell.CELL_TYPE_STRING); c.setCellValue(new HSSFRichTextString(IMAGE_NOT_FOUND)); } else { try { ImageBandElement ibe = (ImageBandElement) bandElement; byte[] imageBytes = getImage((String) value, ibe.getWidth(), ibe.getHeight()); HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0, (short) sheetColumn, sheetRow, (short) (sheetColumn + colSpan), (sheetRow + rowSpan)); int index = wb.addPicture(imageBytes, HSSFWorkbook.PICTURE_TYPE_JPEG); // image is created over the cells, so if it's height is bigger we set the row height short height = xlsRow.getHeight(); int realImageHeight = getRealImageSize((String) value)[1]; if (ibe.isScaled()) { realImageHeight = ibe.getHeight(); } short imageHeight = (short) (realImageHeight * POINTS_FOR_PIXEL / 2.5); if (imageHeight > height) { xlsRow.setHeight(imageHeight); } HSSFPicture picture = patriarch.createPicture(anchor, index); picture.resize(); anchor.setAnchorType(2); } catch (Exception ex) { c.setCellType(HSSFCell.CELL_TYPE_STRING); c.setCellValue(new HSSFRichTextString(IMAGE_NOT_LOADED)); } } if (cellStyle != null) { c.setCellStyle(cellStyle); } } else { if (bandElement instanceof HyperlinkBandElement) { Hyperlink hyp = ((HyperlinkBandElement) bandElement).getHyperlink(); HSSFHyperlink link = new HSSFHyperlink(HSSFHyperlink.LINK_URL); link.setAddress(hyp.getUrl()); c.setHyperlink(link); c.setCellValue(new HSSFRichTextString(hyp.getText())); c.setCellType(HSSFCell.CELL_TYPE_STRING); } else if (bandElement instanceof ReportBandElement) { Report report = ((ReportBandElement) bandElement).getReport(); ExporterBean eb = null; try { eb = getSubreportExporterBean(report, true); XlsExporter subExporter = new XlsExporter(eb, cellStyle); subExporter.export(); HSSFSheet subreportSheet = subExporter.getSubreportSheet(); if (ReportLayout.HEADER_BAND_NAME.equals(bandName) && (gridRow == prevSubreportFirstRow)) { // other subreports on the same header line after the first sheetColumn = prevSubreportLastColumn; sheetRow -= addedPageRows; pageRow -= addedPageRows; addedPageRows = 0; } else { addedPageRows = subreportSheet.getLastRowNum(); pageRow += addedPageRows; // if subreport is not on the first column we merge all cells in the columns before, between the rows subreport occupies if (sheetColumn > 0) { for (int i = 0; i <= sheetColumn - 1; i++) { CellRangeAddress cra = new CellRangeAddress(sheetRow, pageRow, i, i); regions.add(new XlsRegion(cra, null)); } } } int cols = XlsUtil.copyToSheet(xlsSheet, sheetRow, sheetColumn, subreportSheet); addRegions(xlsSheet, subExporter.getSubreportRegions(), wb); if (ReportLayout.HEADER_BAND_NAME.equals(bandName)) { prevSubreportFirstRow = gridRow; prevSubreportFirstColumn = sheetColumn; prevSubreportLastColumn = sheetColumn + cols; } } catch (Exception e) { e.printStackTrace(); } finally { if ((eb != null) && (eb.getResult() != null)) { eb.getResult().close(); } } } else if (bandElement instanceof ImageColumnBandElement) { try { ImageColumnBandElement icbe = (ImageColumnBandElement) bandElement; String v = StringUtil.getValueAsString(value, null); if (StringUtil.BLOB.equals(v)) { c.setCellType(HSSFCell.CELL_TYPE_STRING); c.setCellValue(new HSSFRichTextString(StringUtil.BLOB)); } else { byte[] imageD = StringUtil.decodeImage(v); byte[] imageBytes = getImage(imageD, icbe.getWidth(), icbe.getHeight()); HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 0, 0, (short) sheetColumn, sheetRow, (short) (sheetColumn + colSpan), (sheetRow + rowSpan)); int index = wb.addPicture(imageBytes, HSSFWorkbook.PICTURE_TYPE_JPEG); // image is created over the cells, so if it's height is bigger we set the row height short height = xlsRow.getHeight(); int realImageHeight = getRealImageSize(imageBytes)[1]; if (icbe.isScaled()) { realImageHeight = icbe.getHeight(); } short imageHeight = (short) (realImageHeight * POINTS_FOR_PIXEL / 2.5); if (imageHeight > height) { xlsRow.setHeight(imageHeight); } HSSFPicture picture = patriarch.createPicture(anchor, index); picture.resize(); anchor.setAnchorType(2); } } catch (Exception e) { e.printStackTrace(); c.setCellType(HSSFCell.CELL_TYPE_STRING); c.setCellValue(new HSSFRichTextString(IMAGE_NOT_LOADED)); } } else { if (value == null) { c.setCellType(HSSFCell.CELL_TYPE_STRING); c.setCellValue(new HSSFRichTextString("")); } else if (value instanceof Number) { c.setCellType(HSSFCell.CELL_TYPE_NUMERIC); c.setCellValue(((Number) value).doubleValue()); } else { String pattern = null; if (bandElement instanceof FieldBandElement) { FieldBandElement fbe = (FieldBandElement) bandElement; pattern = fbe.getPattern(); } if ((value instanceof java.sql.Date) || (value instanceof java.sql.Timestamp)) { Date date; if (value instanceof java.sql.Date) { date = new Date(((java.sql.Date) value).getTime()); } else { date = (java.sql.Timestamp) value; } if (cellStyle != null) { if (pattern == null) { // use default pattern if none selected Locale locale = Locale.getDefault(); pattern = ((SimpleDateFormat) DateFormat.getDateInstance(SimpleDateFormat.MEDIUM, locale)).toPattern(); } else { pattern = StringUtil.getI18nString(pattern, getReportLanguage()); } cellStyle.setDataFormat(wb.createDataFormat().getFormat(pattern)); } c.setCellValue(date); } else { c.setCellType(HSSFCell.CELL_TYPE_STRING); String text = StringUtil.getValueAsString(value, pattern); if ((bandElement != null) && bandElement.isWrapText()) { // try to interpret new line characters // \\n is used here to be possible to add in designer grid cell with \n if (text.contains("\\n") || text.contains("\n") || text.contains("\r") || text.contains("\r\n")) { String crLf = Character.toString((char) 13) + Character.toString((char) 10); int lines = countLines(text); if (text.contains("\r\n")) { text = text.replaceAll("\r\n", crLf); } else { text = text.replaceAll("(\n)|(\r)|(\\\\n)", crLf); } c.setCellValue(text); cellStyle.setWrapText(true); xlsRow.setHeightInPoints( lines * (cellStyle.getFont(wb).getFontHeightInPoints() + 3)); } else { c.setCellValue(new HSSFRichTextString(text)); } } else { c.setCellValue(new HSSFRichTextString(text)); } } } } if (cellStyle != null) { if (bandElement != null) { cellStyle.setRotation(bandElement.getTextRotation()); } if (!(bandElement instanceof ReportBandElement)) { c.setCellStyle(cellStyle); } } if ((rowSpan > 1) || (colSpan > 1)) { CellRangeAddress cra = new CellRangeAddress(sheetRow, sheetRow + rowSpan - 1, sheetColumn, sheetColumn + colSpan - 1); Border beBorder = bandElement.getBorder(); if (hasRowRenderConditions(bandElement, gridRow, value)) { // for row render conditions we must keep the row border beBorder = border; } regions.add(new XlsRegion(cra, beBorder)); } } }
From source file:ru.spb.nicetu.tableviewer.server.HSSFHtmlHelper.java
License:Apache License
public void colorStyles(CellStyle style, Formatter out, boolean isBuiltIn) { HSSFCellStyle cs = (HSSFCellStyle) style; if (!isBuiltIn) out.format(" "); out.format("/* fill pattern = %d */", cs.getFillPattern()); if (!isBuiltIn) out.format("%n"); styleColor(out, "background-color", cs.getFillForegroundColor(), isBuiltIn); styleColor(out, "color", cs.getFont(wb).getColor(), isBuiltIn); styleColor(out, "border-left-color", cs.getLeftBorderColor(), isBuiltIn); styleColor(out, "border-right-color", cs.getRightBorderColor(), isBuiltIn); styleColor(out, "border-top-color", cs.getTopBorderColor(), isBuiltIn); styleColor(out, "border-bottom-color", cs.getBottomBorderColor(), isBuiltIn); }
From source file:uk.ac.manchester.cs.owl.semspreadsheets.model.hssf.impl.CellHSSFImpl.java
License:BSD License
public void setBold(boolean b) { HSSFCellStyle cellStyle = theCell.getCellStyle(); if (cellStyle == null) { cellStyle = getWorkbook().createCellStyle(); theCell.setCellStyle(cellStyle); }//from w ww. j a va2s. c o m HSSFFont font = cellStyle.getFont(getWorkbook()); if (font == null) { font = getWorkbook().createFont(); cellStyle.setFont(font); } if (b) { font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); } else { font.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL); } fontCache.clear(); }
From source file:uk.ac.manchester.cs.owl.semspreadsheets.model.hssf.impl.CellHSSFImpl.java
License:BSD License
public Font getFont() { HSSFCellStyle cellStyle = theCell.getCellStyle(); if (cellStyle == null) { return getDefaultFont(); }/*from w w w . j a v a2 s. c o m*/ HSSFFont hssfFont = cellStyle.getFont(getWorkbook()); return getFont(hssfFont); }
From source file:uk.ac.manchester.cs.owl.semspreadsheets.model.hssf.impl.CellHSSFImpl.java
License:BSD License
public Color getForeground() { if (foreground == null) { HSSFCellStyle cellStyle = theCell.getCellStyle(); if (cellStyle == null) { return Color.BLACK; }/*from ww w .j a v a 2 s . c o m*/ HSSFFont hssfFont = cellStyle.getFont(getWorkbook()); short colorIndex = hssfFont.getColor(); Color theColor = translateColour(colorIndex); foreground = theColor; } return foreground; }