public StyleVO(HSSFCellStyle style, Workbook workbook) { alignment = style.getAlignment(); borderBottom = style.getBorderBottom(); borderLeft = style.getBorderLeft(); borderRight = style.getBorderRight(); borderTop = style.getBorderTop(); bottomBorderColor = style.getBottomBorderColor(); dataFormat = style.getDataFormat(); fillBackgroundColor = style.getFillBackgroundColor(); fillForegroundColor = style.getFillForegroundColor(); fillPattern = style.getFillPattern(); fontIndex = style.getFontIndex(); hidden = style.getHidden(); indention = style.getIndention(); leftBorderColor = style.getLeftBorderColor(); locked = style.getLocked(); rightBorderColor = style.getRightBorderColor(); rotation = style.getRotation(); topBorderColor = style.getTopBorderColor(); verticalAlignment = style.getVerticalAlignment(); wrapText = style.getWrapText(); fontVal = new FontVO(style.getFont(workbook)); }
/** * Находит или создает новый стиль на основе указанного в аргументе исходного стиля в котором были * изменены цвета шрифта и/или фона. Информация о всех созданных данным методом стилях сохраняется * в контексте выполнения в пространстве имен {@link * org.echosoft.framework.reports.model.el.ELContext.Scope#VAR}. * * @param ectx контекст выполнения. Используется для получения информации о текущей ячейке и для * кэширования информации о вновь созданных в документе стилях. * @param originalStyle исходный стиль, который должен послужить основой для создаваемого стиля. * @param color Определяет цвет шрифта в данной ячейке. Аргумент содержит идентификатор цвета в * документе или <code>-1</code> если цвет шрифта должен остаться без изменений. * @param bgColor Определяет цвет фона в данной ячейке. Аргумент содержит идентификатор цвета в * документе или <code>-1</code> если цвет шрифта должен остаться без изменений. * @return копия оригинального стиля указанной ячейки с измененными цветами фона и шрифта. Этот * стиль уже зарегистрирован в рабочей книге. */ public static HSSFCellStyle getAltColorStyle( final ExecutionContext ectx, final HSSFCellStyle originalStyle, final int color, final int bgColor) { final String styleName = "alt.color.style:" + originalStyle.getIndex() + ':' + color + ':' + bgColor; HSSFCellStyle style = (HSSFCellStyle) ectx.elctx.getVariables().get(styleName); if (style == null) { style = POIUtils.copyStyle(ectx.wb, originalStyle); if (color >= 0) { final HSSFFont of = ectx.wb.getFontAt(originalStyle.getFontIndex()); HSSFFont nf = ectx.wb.findFont( of.getBoldweight(), (short) color, of.getFontHeight(), of.getFontName(), of.getItalic(), of.getStrikeout(), of.getTypeOffset(), of.getUnderline()); if (nf == null) { nf = POIUtils.copyFont(ectx.wb, of); nf.setColor((short) color); } style.setFont(nf); } if (bgColor >= 0) { style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setFillForegroundColor((short) bgColor); } ectx.elctx.getVariables().put(styleName, style); } return style; }
private void setIndexMatrixColor(HSSFWorkbook workbook, HSSFCellStyle indexStyle) { indexStyle.setFillForegroundColor(HSSFColor.WHITE.index); HSSFFont font = workbook.getFontAt(indexStyle.getFontIndex()); font.setColor(HSSFColor.BLACK.index); }
/** * Gets the tableCellEditorComponent attribute of the SVTableCellEditor object * * @return The tableCellEditorComponent value */ public Component getTableCellEditorComponent( JTable table, Object value, boolean isSelected, int row, int column) { System.out.println("GetTableCellEditorComponent"); HSSFCell cell = (HSSFCell) value; if (cell != null) { HSSFCellStyle style = cell.getCellStyle(); HSSFFont f = wb.getFontAt(style.getFontIndex()); boolean isbold = f.getBoldweight() > HSSFFont.BOLDWEIGHT_NORMAL; boolean isitalics = f.getItalic(); int fontstyle = Font.PLAIN; if (isbold) fontstyle = Font.BOLD; if (isitalics) fontstyle = fontstyle | Font.ITALIC; int fontheight = f.getFontHeightInPoints(); if (fontheight == 9) fontheight = 10; // fix for stupid ol Windows Font font = new Font(f.getFontName(), fontstyle, fontheight); editor.setFont(font); if (style.getFillPattern() == HSSFCellStyle.SOLID_FOREGROUND) { editor.setBackground(getAWTColor(style.getFillForegroundColor(), white)); } else editor.setBackground(white); editor.setForeground(getAWTColor(f.getColor(), black)); // Set the value that is rendered for the cell switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_BLANK: editor.setText(""); break; case HSSFCell.CELL_TYPE_BOOLEAN: if (cell.getBooleanCellValue()) { editor.setText("true"); } else { editor.setText("false"); } break; case HSSFCell.CELL_TYPE_NUMERIC: editor.setText(Double.toString(cell.getNumericCellValue())); break; case HSSFCell.CELL_TYPE_STRING: editor.setText(cell.getRichStringCellValue().getString()); break; case HSSFCell.CELL_TYPE_FORMULA: default: editor.setText("?"); } switch (style.getAlignment()) { case HSSFCellStyle.ALIGN_LEFT: case HSSFCellStyle.ALIGN_JUSTIFY: case HSSFCellStyle.ALIGN_FILL: editor.setHorizontalAlignment(SwingConstants.LEFT); break; case HSSFCellStyle.ALIGN_CENTER: case HSSFCellStyle.ALIGN_CENTER_SELECTION: editor.setHorizontalAlignment(SwingConstants.CENTER); break; case HSSFCellStyle.ALIGN_GENERAL: case HSSFCellStyle.ALIGN_RIGHT: editor.setHorizontalAlignment(SwingConstants.RIGHT); break; default: editor.setHorizontalAlignment(SwingConstants.LEFT); break; } } return editor; }