Example usage for org.apache.poi.hssf.usermodel HSSFFont getFontHeightInPoints

List of usage examples for org.apache.poi.hssf.usermodel HSSFFont getFontHeightInPoints

Introduction

In this page you can find the example usage for org.apache.poi.hssf.usermodel HSSFFont getFontHeightInPoints.

Prototype


public short getFontHeightInPoints() 

Source Link

Document

get the font height

Usage

From source file:cn.trymore.core.util.excel.PoiExcelParser.java

License:Open Source License

public String getCellFontStyle(HSSFCell cell) {
    HSSFCellStyle style = cell.getCellStyle();
    StringBuilder sb = new StringBuilder();
    if ((cell != null) && (style != null)) {
        HSSFFont font = style.getFont(this.book);

        sb.append(new StringBuilder().append("font-size:").append(font.getFontHeightInPoints()).append("pt;")
                .toString());//from   w w w.j ava2s.  co  m
        sb.append(
                new StringBuilder().append("font-weight:").append(font.getBoldweight()).append(";").toString());

        if (tripleToRGBString(font.getColor()) != null) {
            sb.append(new StringBuilder().append("color:").append(tripleToRGBString(font.getColor()))
                    .append(";").toString());
        }

        sb.append("font-family:tahoma;");

        if (font.getItalic()) {
            sb.append("font-style:italic;");
        }
        return sb.toString();
    }
    return "";
}

From source file:com.develog.utils.report.engine.export.JRXlsExporter.java

License:Open Source License

/**
 *
 *///from w w w . jav  a 2 s .  c  o  m
protected HSSFFont getLoadedFont(JRFont font, short forecolor) {
    HSSFFont cellFont = null;

    if (loadedFonts != null && loadedFonts.size() > 0) {
        HSSFFont cf = null;
        for (int i = 0; i < loadedFonts.size(); i++) {
            cf = (HSSFFont) loadedFonts.get(i);

            if (cf.getFontName().equals(font.getFontName()) && (cf.getColor() == forecolor)
                    && (cf.getFontHeightInPoints() == (short) font.getSize())
                    && ((cf.getUnderline() == HSSFFont.U_SINGLE) ? (font.isUnderline()) : (!font.isUnderline()))
                    && (cf.getStrikeout() == font.isStrikeThrough())
                    && ((cf.getBoldweight() == HSSFFont.BOLDWEIGHT_BOLD) ? (font.isBold()) : (!font.isBold()))
                    && (cf.getItalic() == font.isItalic())) {
                cellFont = cf;
                break;
            }
        }
    }

    if (cellFont == null) {
        cellFont = workbook.createFont();
        cellFont.setFontName(font.getFontName());
        cellFont.setColor(forecolor);
        cellFont.setFontHeightInPoints((short) font.getSize());

        if (font.isUnderline()) {
            cellFont.setUnderline(HSSFFont.U_SINGLE);
        }
        if (font.isStrikeThrough()) {
            cellFont.setStrikeout(true);
        }
        if (font.isBold()) {
            cellFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        }
        if (font.isItalic()) {
            cellFont.setItalic(true);
        }

        loadedFonts.add(cellFont);
    }

    return cellFont;
}

From source file:com.eryansky.core.excelTools.ExcelUtils.java

License:Apache License

public static void copyCellStyle(HSSFWorkbook destwb, HSSFCellStyle dest, HSSFWorkbook srcwb,
        HSSFCellStyle src) {//w  w  w.j a v a 2s.  co  m
    if (src == null || dest == null)
        return;
    dest.setAlignment(src.getAlignment());
    dest.setBorderBottom(src.getBorderBottom());
    dest.setBorderLeft(src.getBorderLeft());
    dest.setBorderRight(src.getBorderRight());
    dest.setBorderTop(src.getBorderTop());
    dest.setBottomBorderColor(findColor(src.getBottomBorderColor(), srcwb, destwb));
    dest.setDataFormat(
            destwb.createDataFormat().getFormat(srcwb.createDataFormat().getFormat(src.getDataFormat())));
    dest.setFillPattern(src.getFillPattern());
    dest.setFillForegroundColor(findColor(src.getFillForegroundColor(), srcwb, destwb));
    dest.setFillBackgroundColor(findColor(src.getFillBackgroundColor(), srcwb, destwb));
    dest.setHidden(src.getHidden());
    dest.setIndention(src.getIndention());
    dest.setLeftBorderColor(findColor(src.getLeftBorderColor(), srcwb, destwb));
    dest.setLocked(src.getLocked());
    dest.setRightBorderColor(findColor(src.getRightBorderColor(), srcwb, destwb));
    dest.setRotation(src.getRotation());
    dest.setTopBorderColor(findColor(src.getTopBorderColor(), srcwb, destwb));
    dest.setVerticalAlignment(src.getVerticalAlignment());
    dest.setWrapText(src.getWrapText());

    HSSFFont f = srcwb.getFontAt(src.getFontIndex());
    HSSFFont nf = findFont(f, srcwb, destwb);
    if (nf == null) {
        nf = destwb.createFont();
        nf.setBoldweight(f.getBoldweight());
        nf.setCharSet(f.getCharSet());
        nf.setColor(findColor(f.getColor(), srcwb, destwb));
        nf.setFontHeight(f.getFontHeight());
        nf.setFontHeightInPoints(f.getFontHeightInPoints());
        nf.setFontName(f.getFontName());
        nf.setItalic(f.getItalic());
        nf.setStrikeout(f.getStrikeout());
        nf.setTypeOffset(f.getTypeOffset());
        nf.setUnderline(f.getUnderline());
    }
    dest.setFont(nf);
}

From source file:com.haulmont.cuba.gui.export.ExcelAutoColumnSizer.java

License:Apache License

private FontMetrics getFontMetrics(HSSFFont hf) {
    FontMetrics fm;/*  ww w.  j  a v  a  2  s.c  o  m*/
    Short pFont = new Short(hf.getIndex());

    fm = (FontMetrics) fontMetrics.get(pFont);
    if (fm == null) {
        int style;
        if ((hf.getBoldweight() == HSSFFont.BOLDWEIGHT_BOLD) || hf.getItalic()) {
            style = 0;
            if (hf.getBoldweight() == HSSFFont.BOLDWEIGHT_BOLD)
                style ^= Font.BOLD;
            if (hf.getItalic())
                style ^= Font.ITALIC;
        } else {
            style = Font.PLAIN;
        }
        Font f = new java.awt.Font(hf.getFontName(), style, hf.getFontHeightInPoints());

        if (graphics == null) {
            BufferedImage i = new BufferedImage(1, 1, BufferedImage.TYPE_BYTE_GRAY);
            graphics = i.createGraphics();
        }

        fm = graphics.getFontMetrics(f);
        fontMetrics.put(pFont, fm);
    }

    return fm;
}

From source file:com.haulmont.yarg.formatters.impl.xls.hints.CustomCellStyleHint.java

License:Apache License

@Override
public void apply() {
    for (DataObject dataObject : data) {
        HSSFCell templateCell = dataObject.templateCell;
        HSSFCell resultCell = dataObject.resultCell;
        BandData bandData = dataObject.bandData;

        HSSFWorkbook resultWorkbook = resultCell.getSheet().getWorkbook();
        HSSFWorkbook templateWorkbook = templateCell.getSheet().getWorkbook();

        String templateCellValue = templateCell.getStringCellValue();

        Matcher matcher = pattern.matcher(templateCellValue);
        if (matcher.find()) {
            String paramName = matcher.group(1);
            String styleName = (String) bandData.getParameterValue(paramName);
            if (styleName == null)
                continue;

            HSSFCellStyle cellStyle = styleCache.getStyleByName(styleName);
            if (cellStyle == null)
                continue;

            HSSFCellStyle resultStyle = styleCache.getNamedCachedStyle(cellStyle);

            if (resultStyle == null) {
                HSSFCellStyle newStyle = resultWorkbook.createCellStyle();
                // color
                newStyle.setFillBackgroundColor(cellStyle.getFillBackgroundColor());
                newStyle.setFillForegroundColor(cellStyle.getFillForegroundColor());
                newStyle.setFillPattern(cellStyle.getFillPattern());

                // borders
                newStyle.setBorderLeft(cellStyle.getBorderLeft());
                newStyle.setBorderRight(cellStyle.getBorderRight());
                newStyle.setBorderTop(cellStyle.getBorderTop());
                newStyle.setBorderBottom(cellStyle.getBorderBottom());

                // border colors
                newStyle.setLeftBorderColor(cellStyle.getLeftBorderColor());
                newStyle.setRightBorderColor(cellStyle.getRightBorderColor());
                newStyle.setBottomBorderColor(cellStyle.getBottomBorderColor());
                newStyle.setTopBorderColor(cellStyle.getTopBorderColor());

                // alignment
                newStyle.setAlignment(cellStyle.getAlignment());
                newStyle.setVerticalAlignment(cellStyle.getVerticalAlignment());
                // misc
                DataFormat dataFormat = resultWorkbook.getCreationHelper().createDataFormat();
                newStyle.setDataFormat(dataFormat.getFormat(cellStyle.getDataFormatString()));
                newStyle.setHidden(cellStyle.getHidden());
                newStyle.setLocked(cellStyle.getLocked());
                newStyle.setIndention(cellStyle.getIndention());
                newStyle.setRotation(cellStyle.getRotation());
                newStyle.setWrapText(cellStyle.getWrapText());
                // font
                HSSFFont cellFont = cellStyle.getFont(templateWorkbook);
                HSSFFont newFont = fontCache.getFontByTemplate(cellFont);

                if (newFont == null) {
                    newFont = resultWorkbook.createFont();

                    newFont.setFontName(cellFont.getFontName());
                    newFont.setItalic(cellFont.getItalic());
                    newFont.setStrikeout(cellFont.getStrikeout());
                    newFont.setTypeOffset(cellFont.getTypeOffset());
                    newFont.setBoldweight(cellFont.getBoldweight());
                    newFont.setCharSet(cellFont.getCharSet());
                    newFont.setColor(cellFont.getColor());
                    newFont.setUnderline(cellFont.getUnderline());
                    newFont.setFontHeight(cellFont.getFontHeight());
                    newFont.setFontHeightInPoints(cellFont.getFontHeightInPoints());
                    fontCache.addCachedFont(cellFont, newFont);
                }/*from w w w. j  av a2  s . c o  m*/
                newStyle.setFont(newFont);

                resultStyle = newStyle;
                styleCache.addCachedNamedStyle(cellStyle, resultStyle);
            }

            fixNeighbourCellBorders(cellStyle, resultCell);

            resultCell.setCellStyle(resultStyle);

            Sheet sheet = resultCell.getSheet();
            for (int i = 0; i < sheet.getNumMergedRegions(); i++) {
                CellRangeAddress mergedRegion = sheet.getMergedRegion(i);
                if (mergedRegion.isInRange(resultCell.getRowIndex(), resultCell.getColumnIndex())) {

                    int firstRow = mergedRegion.getFirstRow();
                    int lastRow = mergedRegion.getLastRow();
                    int firstCol = mergedRegion.getFirstColumn();
                    int lastCol = mergedRegion.getLastColumn();

                    for (int row = firstRow; row <= lastRow; row++)
                        for (int col = firstCol; col <= lastCol; col++)
                            sheet.getRow(row).getCell(col).setCellStyle(resultStyle);

                    // cell includes only in one merged region
                    break;
                }
            }
        }
    }
}

From source file:com.report.excel.ExcelToHtmlConverter.java

License:Apache License

void buildStyle_font(HSSFWorkbook workbook, StringBuilder style, HSSFFont font) {
    switch (font.getBoldweight()) {
    case HSSFFont.BOLDWEIGHT_BOLD:
        style.append("font-weight:bold;");
        break;/*  w  ww  .j av a  2 s. co  m*/
    case HSSFFont.BOLDWEIGHT_NORMAL:
        // by default, not not increase HTML size
        // style.append( "font-weight: normal; " );
        break;
    }

    final HSSFColor fontColor = workbook.getCustomPalette().getColor(font.getColor());
    if (fontColor != null)
        style.append("color: " + ExcelToHtmlUtils.getColor(fontColor) + "; ");

    if (font.getFontHeightInPoints() != 0)
        style.append("font-size:" + font.getFontHeightInPoints() + "pt;");

    if (font.getItalic()) {
        style.append("font-style:italic;");
    }
}

From source file:com.siteview.ecc.report.xls.JRXlsExporter.java

License:Open Source License

/**
 *
 *///w  w w.  j a va  2s .  c  o  m
protected HSSFFont getLoadedFont(JRFont font, short forecolor, Map attributes, Locale locale) {
    HSSFFont cellFont = null;

    String fontName = font.getFontName();
    if (fontMap != null && fontMap.containsKey(fontName)) {
        fontName = (String) fontMap.get(fontName);
    } else {
        FontInfo fontInfo = JRFontUtil.getFontInfo(fontName, locale);
        if (fontInfo != null) {
            //fontName found in font extensions
            FontFamily family = fontInfo.getFontFamily();
            String exportFont = family.getExportFont(getExporterKey());
            if (exportFont != null) {
                fontName = exportFont;
            }
        }
    }

    short superscriptType = HSSFFont.SS_NONE;

    if (attributes != null && attributes.get(TextAttribute.SUPERSCRIPT) != null) {
        Object value = attributes.get(TextAttribute.SUPERSCRIPT);
        if (TextAttribute.SUPERSCRIPT_SUPER.equals(value)) {
            superscriptType = HSSFFont.SS_SUPER;
        } else if (TextAttribute.SUPERSCRIPT_SUB.equals(value)) {
            superscriptType = HSSFFont.SS_SUB;
        }

    }
    for (int i = 0; i < loadedFonts.size(); i++) {
        HSSFFont cf = (HSSFFont) loadedFonts.get(i);

        short fontSize = (short) font.getFontSize();
        if (isFontSizeFixEnabled)
            fontSize -= 1;

        if (cf.getFontName().equals(fontName) && (cf.getColor() == forecolor)
                && (cf.getFontHeightInPoints() == fontSize)
                && ((cf.getUnderline() == HSSFFont.U_SINGLE) ? (font.isUnderline()) : (!font.isUnderline()))
                && (cf.getStrikeout() == font.isStrikeThrough())
                && ((cf.getBoldweight() == HSSFFont.BOLDWEIGHT_BOLD) ? (font.isBold()) : (!font.isBold()))
                && (cf.getItalic() == font.isItalic()) && (cf.getTypeOffset() == superscriptType)) {
            cellFont = cf;
            break;
        }
    }

    if (cellFont == null) {
        cellFont = workbook.createFont();

        cellFont.setFontName(fontName);
        cellFont.setColor(forecolor);

        short fontSize = (short) font.getFontSize();
        if (isFontSizeFixEnabled)
            fontSize -= 1;

        cellFont.setFontHeightInPoints(fontSize);

        if (font.isUnderline()) {
            cellFont.setUnderline(HSSFFont.U_SINGLE);
        }
        if (font.isStrikeThrough()) {
            cellFont.setStrikeout(true);
        }
        if (font.isBold()) {
            cellFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        }
        if (font.isItalic()) {
            cellFont.setItalic(true);
        }

        cellFont.setTypeOffset(superscriptType);
        loadedFonts.add(cellFont);
    }

    return cellFont;
}

From source file:com.wangzhu.poi.ExcelToHtmlConverter.java

License:Apache License

void buildStyle_font(HSSFWorkbook workbook, StringBuffer style, HSSFFont font) {
    switch (font.getBoldweight()) {
    case Font.BOLDWEIGHT_BOLD:
        style.append("font-weight:bold;");
        break;//from ww w.j  a va 2 s .  c o m
    case Font.BOLDWEIGHT_NORMAL:
        // by default, not not increase HTML size
        // style.append( "font-weight: normal; " );
        break;
    }

    final HSSFColor fontColor = workbook.getCustomPalette().getColor(font.getColor());
    if (fontColor != null) {
        style.append("color: " + AbstractExcelUtils.getColor(fontColor) + "; ");
    }

    if (font.getFontHeightInPoints() != 0) {
        style.append("font-size:" + font.getFontHeightInPoints() + "pt;");
    }

    if (font.getItalic()) {
        style.append("font-style:italic;");
    }
}

From source file:eionet.gdem.conversion.excel.writer.ExcelConversionHandler.java

License:Mozilla Public License

@Override
public void addCell(String type, String str_value, String style_name) {
    HSSFSheet _sheet = wb.getSheetAt(currentSheet);
    HSSFRow _row = _sheet.getRow(currentRow);
    HSSFCell _cell = _row.createCell((currentCell));

    Double number_value = null;// w  ww . j  a v a 2  s  . c o m
    Boolean boolean_value = null;
    boolean isNumber = false;
    boolean isBoolean = false;
    if (type == null) {
        type = (String) getDefaultParams("data_type");
    }
    if (type != null) {
        if (type.equals("float") || type.equals("number")) {
            if (str_value != null) {
                try {
                    number_value = new Double(str_value);
                    isNumber = true;
                } catch (Exception e) {
                    // the value is not number, it will be inserted as a string
                    // System.out.println(e.toString());
                }
            } else {
                isNumber = true;
            }
        } else if (type.equals("boolean")) {
            if (str_value != null) {
                try {
                    boolean_value = new Boolean(str_value);
                    isBoolean = true;
                } catch (Exception e) {
                    // the value is not boolean, it will be inserted as a string
                    // System.out.println(e.toString());
                }
            } else {
                isBoolean = true;
            }
        } else if (type.equals("date")) {
            if (str_value != null) {
                try {
                    // cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("yyyymmdd"));

                    /*
                     *
                     * The way how to handle user defined formats not supported right now HSSFDataFormat format =
                     * wb.createDataFormat(); HSSFCellStyle style = wb.createCellStyle();
                     * style.setDataFormat(format.getFormat("yyyymmdd")); _cell.setCellStyle(style);
                     */
                    // cellStyle.setDataFormat(new HSSFDataFormat("yyyymmdd"));
                    /*
                     * try{ l_value=Long.parseLong(value); System.out.println(String.valueOf(l_value)); isLong=true; }
                     * catch(Exception e){ System.out.println(e.toString()); }
                     */
                    /*
                     * if (isLong){ Date d = new Date(); _cell.setCellStyle(cellStyle); //_cell.setCellValue(d);
                     * _cell.setCellValue(value); //System.out.println(d.toString()); isDate=true; } else
                     * _cell.setCellValue(value);
                     */
                    // System.out.println("hh");

                } catch (Exception e) {
                    System.out.println(e.toString());
                }
            }
        }
    }
    if (isNumber) {
        if (number_value != null) {
            _cell.setCellValue(number_value.doubleValue());
        }
        _cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
    } else if (isBoolean) {
        if (boolean_value != null) {
            _cell.setCellValue(boolean_value.booleanValue());
        }
        _cell.setCellType(HSSFCell.CELL_TYPE_BOOLEAN);
    } else {
        _cell.setCellType(HSSFCell.CELL_TYPE_STRING);
        // _cell.setEncoding(HSSFCell.ENCODING_UTF_16 );//
        _cell.setCellValue(str_value);
    }

    short idx = -1;
    if (style_name != null) {
        idx = getStyleIdxByName(style_name, ExcelStyleIF.STYLE_FAMILY_TABLE_CELL);
    }

    if (idx < 0) {
        Short short_idx = (Short) getDefaultParams("style");
        if (short_idx != null) {
            idx = short_idx.shortValue();
        }
    }

    if (idx > -1) {
        _cell.setCellStyle(wb.getCellStyleAt(idx));
    }
    // calculates the col with according to the first row
    if (currentRow == 0 && idx > -1) {
        short colStyleWidth = 0;
        HSSFCellStyle style = wb.getCellStyleAt(idx);
        int f_i = style.getFontIndex();
        HSSFFont font = wb.getFontAt((short) f_i);
        // character size
        short size = font.getFontHeightInPoints();
        if (columns.size() > currentCell) {
            RowColumnDefinition column = columns.get(currentCell);
            String column_style_name = column.getStyleName() == null ? "" : column.getStyleName();
            ExcelStyleIF definedStyle = getStyleByName(column_style_name, ExcelStyleIF.STYLE_FAMILY_TABLE_CELL);
            if (definedStyle != null) {
                colStyleWidth = definedStyle.getColumnWidth();
            }
        }
        short width = (short) (_sheet.getDefaultColumnWidth() * size * 25);
        if (colStyleWidth > 0) {
            width = colStyleWidth;
        } else if (str_value.length() > 0) {
            width = (short) (str_value.length() * size * 50);
        }
        _sheet.setColumnWidth(currentCell, width);
    }
    currentCell = _cell.getColumnIndex() + 1;
    // System.out.println("Cell" + currentCell+ "-" + value);
}

From source file:gov.nih.nci.evs.browser.utils.ResolvedValueSetIteratorHolder.java

License:Open Source License

/**
 * (Each Excel sheet cell becomes an HTML table cell) Generates an HTML
 * table cell which has the same font styles, alignments, colours and
 * borders as the Excel cell.//from   w w  w  .j  av a 2s .  c o m
 *
 * @param cell
 *            The Excel cell.
 */

private void td(final HSSFCell cell) {
    int colspan = 1;
    if (colIndex == mergeStart) {
        // First cell in the merging region - set colspan.
        colspan = mergeEnd - mergeStart + 1;
    } else if (colIndex == mergeEnd) {
        // Last cell in the merging region - no more skipped cells.
        mergeStart = -1;
        mergeEnd = -1;
        return;
    } else if (mergeStart != -1 && mergeEnd != -1 && colIndex > mergeStart && colIndex < mergeEnd) {
        // Within the merging region - skip the cell.
        return;
    }
    //KLO 05022018
    //out.append("<td ");

    out.append("<td height=\"15\" ");
    if (colspan > 1) {
        out.append("colspan='").append(colspan).append("' ");
    }
    if (cell == null) {
        out.append("/>\n");
        return;
    }

    out.append("style='");
    final HSSFCellStyle style = cell.getCellStyle();
    // Text alignment
    switch (style.getAlignment()) {
    case CellStyle.ALIGN_LEFT:
        out.append("text-align: left; ");
        break;
    case CellStyle.ALIGN_RIGHT:
        out.append("text-align: right; ");
        break;
    case CellStyle.ALIGN_CENTER:
        out.append("text-align: center; ");
        break;
    default:
        break;
    }

    // Font style, size and weight
    final HSSFFont font = style.getFont(book);
    if (font == null)
        return;
    if (font.getBoldweight() == HSSFFont.BOLDWEIGHT_BOLD) {
        out.append("font-weight: bold; ");
    }
    if (font.getItalic()) {
        out.append("font-style: italic; ");
    }
    if (font.getUnderline() != HSSFFont.U_NONE) {
        out.append("text-decoration: underline; ");
    }
    out.append("font-size: ").append(Math.floor(font.getFontHeightInPoints() * 0.8)).append("pt; ");
    // Cell background and font colours
    final short[] backRGB = style.getFillForegroundColorColor().getTriplet();
    final HSSFColor foreColor = palette.getColor(font.getColor());
    if (foreColor != null) {
        final short[] foreRGB = foreColor.getTriplet();
        if (foreRGB[0] != 0 || foreRGB[1] != 0 || foreRGB[2] != 0) {
            out.append("color: rgb(").append(foreRGB[0]).append(',').append(foreRGB[1]).append(',')
                    .append(foreRGB[2]).append(");");
        }
    }
    if (backRGB[0] != 0 || backRGB[1] != 0 || backRGB[2] != 0) {
        out.append("background-color: rgb(").append(backRGB[0]).append(',').append(backRGB[1]).append(',')
                .append(backRGB[2]).append(");");
    }
    // Border
    if (style.getBorderTop() != HSSFCellStyle.BORDER_NONE) {
        out.append("border-top-style: solid; ");
    }
    if (style.getBorderRight() != HSSFCellStyle.BORDER_NONE) {
        out.append("border-right-style: solid; ");
    }
    if (style.getBorderBottom() != HSSFCellStyle.BORDER_NONE) {
        out.append("border-bottom-style: solid; ");
    }
    if (style.getBorderLeft() != HSSFCellStyle.BORDER_NONE) {
        out.append("border-left-style: solid; ");
    }
    out.append("'>");
    String val = "";
    try {
        switch (cell.getCellType()) {
        case HSSFCell.CELL_TYPE_STRING:
            val = cell.getStringCellValue();
            break;
        case HSSFCell.CELL_TYPE_NUMERIC:
            // POI does not distinguish between integer and double, thus:
            final double original = cell.getNumericCellValue(), rounded = Math.round(original);
            if (Math.abs(rounded - original) < 0.00000000000000001) {
                val = String.valueOf((int) rounded);
            } else {
                val = String.valueOf(original);
            }
            break;
        case HSSFCell.CELL_TYPE_FORMULA:
            final CellValue cv = evaluator.evaluate(cell);
            if (cv == null)
                return;
            switch (cv.getCellType()) {
            case Cell.CELL_TYPE_BOOLEAN:
                out.append(cv.getBooleanValue());
                break;
            case Cell.CELL_TYPE_NUMERIC:
                out.append(cv.getNumberValue());
                break;
            case Cell.CELL_TYPE_STRING:
                out.append(cv.getStringValue());
                break;
            case Cell.CELL_TYPE_BLANK:
                break;
            case Cell.CELL_TYPE_ERROR:
                break;
            default:
                break;
            }
            break;
        default:
            // Neither string or number? Could be a date.
            try {
                val = sdf.format(cell.getDateCellValue());
            } catch (final Exception e1) {
            }
        }
    } catch (final Exception e) {
        val = e.getMessage();
    }
    if ("null".equals(val)) {
        val = "";
    }
    if (pix.containsKey(rowIndex)) {
        if (pix.get(rowIndex).containsKey(colIndex)) {
            for (final HSSFPictureData pic : pix.get(rowIndex).get(colIndex)) {
                out.append("<img alt='Image in Excel sheet' src='data:");
                out.append(pic.getMimeType());
                out.append(";base64,");
                try {
                    out.append(new String(Base64.encodeBase64(pic.getData()), "US-ASCII"));
                } catch (final UnsupportedEncodingException e) {
                    throw new RuntimeException(e);
                }
                out.append("'/>");
            }
        }
    }

    if (isCode(val) && this.URL != null) {
        val = getHyperLink(val);
    }

    out.append(val);
    out.append("</td>\n");
}