Search in sources :

Example 1 with XSSFCellBorder

use of org.apache.poi.xssf.usermodel.extensions.XSSFCellBorder in project poi by apache.

the class StylesTable method initialize.

private void initialize() {
    //CTFont ctFont = createDefaultFont();
    XSSFFont xssfFont = createDefaultFont();
    fonts.add(xssfFont);
    CTFill[] ctFill = createDefaultFills();
    fills.add(new XSSFCellFill(ctFill[0], indexedColors));
    fills.add(new XSSFCellFill(ctFill[1], indexedColors));
    CTBorder ctBorder = createDefaultBorder();
    borders.add(new XSSFCellBorder(ctBorder));
    CTXf styleXf = createDefaultXf();
    styleXfs.add(styleXf);
    CTXf xf = createDefaultXf();
    xf.setXfId(0);
    xfs.add(xf);
}
Also used : XSSFFont(org.apache.poi.xssf.usermodel.XSSFFont) XSSFCellFill(org.apache.poi.xssf.usermodel.extensions.XSSFCellFill) XSSFCellBorder(org.apache.poi.xssf.usermodel.extensions.XSSFCellBorder)

Example 2 with XSSFCellBorder

use of org.apache.poi.xssf.usermodel.extensions.XSSFCellBorder in project poi by apache.

the class StylesTable method writeTo.

/**
     * Write this table out as XML.
     *
     * @param out The stream to write to.
     * @throws IOException if an error occurs while writing.
     */
public void writeTo(OutputStream out) throws IOException {
    // Work on the current one
    // Need to do this, as we don't handle
    //  all the possible entries yet
    CTStylesheet styleSheet = doc.getStyleSheet();
    // Formats
    CTNumFmts formats = CTNumFmts.Factory.newInstance();
    formats.setCount(numberFormats.size());
    for (final Entry<Short, String> entry : numberFormats.entrySet()) {
        CTNumFmt ctFmt = formats.addNewNumFmt();
        ctFmt.setNumFmtId(entry.getKey());
        ctFmt.setFormatCode(entry.getValue());
    }
    styleSheet.setNumFmts(formats);
    int idx;
    // Fonts
    CTFonts ctFonts = styleSheet.getFonts();
    if (ctFonts == null) {
        ctFonts = CTFonts.Factory.newInstance();
    }
    ctFonts.setCount(fonts.size());
    CTFont[] ctfnt = new CTFont[fonts.size()];
    idx = 0;
    for (XSSFFont f : fonts) ctfnt[idx++] = f.getCTFont();
    ctFonts.setFontArray(ctfnt);
    styleSheet.setFonts(ctFonts);
    // Fills
    CTFills ctFills = styleSheet.getFills();
    if (ctFills == null) {
        ctFills = CTFills.Factory.newInstance();
    }
    ctFills.setCount(fills.size());
    CTFill[] ctf = new CTFill[fills.size()];
    idx = 0;
    for (XSSFCellFill f : fills) ctf[idx++] = f.getCTFill();
    ctFills.setFillArray(ctf);
    styleSheet.setFills(ctFills);
    // Borders
    CTBorders ctBorders = styleSheet.getBorders();
    if (ctBorders == null) {
        ctBorders = CTBorders.Factory.newInstance();
    }
    ctBorders.setCount(borders.size());
    CTBorder[] ctb = new CTBorder[borders.size()];
    idx = 0;
    for (XSSFCellBorder b : borders) ctb[idx++] = b.getCTBorder();
    ctBorders.setBorderArray(ctb);
    styleSheet.setBorders(ctBorders);
    // Xfs
    if (xfs.size() > 0) {
        CTCellXfs ctXfs = styleSheet.getCellXfs();
        if (ctXfs == null) {
            ctXfs = CTCellXfs.Factory.newInstance();
        }
        ctXfs.setCount(xfs.size());
        ctXfs.setXfArray(xfs.toArray(new CTXf[xfs.size()]));
        styleSheet.setCellXfs(ctXfs);
    }
    // Style xfs
    if (styleXfs.size() > 0) {
        CTCellStyleXfs ctSXfs = styleSheet.getCellStyleXfs();
        if (ctSXfs == null) {
            ctSXfs = CTCellStyleXfs.Factory.newInstance();
        }
        ctSXfs.setCount(styleXfs.size());
        ctSXfs.setXfArray(styleXfs.toArray(new CTXf[styleXfs.size()]));
        styleSheet.setCellStyleXfs(ctSXfs);
    }
    // Style dxfs
    if (dxfs.size() > 0) {
        CTDxfs ctDxfs = styleSheet.getDxfs();
        if (ctDxfs == null) {
            ctDxfs = CTDxfs.Factory.newInstance();
        }
        ctDxfs.setCount(dxfs.size());
        ctDxfs.setDxfArray(dxfs.toArray(new CTDxf[dxfs.size()]));
        styleSheet.setDxfs(ctDxfs);
    }
    // Save
    doc.save(out, DEFAULT_XML_OPTIONS);
}
Also used : XSSFCellFill(org.apache.poi.xssf.usermodel.extensions.XSSFCellFill) XSSFFont(org.apache.poi.xssf.usermodel.XSSFFont) XSSFCellBorder(org.apache.poi.xssf.usermodel.extensions.XSSFCellBorder)

Example 3 with XSSFCellBorder

use of org.apache.poi.xssf.usermodel.extensions.XSSFCellBorder in project poi by apache.

the class StylesTable method readFrom.

/**
     * Read this shared styles table from an XML file.
     *
     * @param is The input stream containing the XML document.
     * @throws IOException if an error occurs while reading.
     */
public void readFrom(InputStream is) throws IOException {
    try {
        doc = StyleSheetDocument.Factory.parse(is, DEFAULT_XML_OPTIONS);
        CTStylesheet styleSheet = doc.getStyleSheet();
        // Grab all the different bits we care about
        // keep this first, as some constructors below want it
        IndexedColorMap customColors = CustomIndexedColorMap.fromColors(styleSheet.getColors());
        if (customColors != null)
            indexedColors = customColors;
        CTNumFmts ctfmts = styleSheet.getNumFmts();
        if (ctfmts != null) {
            for (CTNumFmt nfmt : ctfmts.getNumFmtArray()) {
                short formatId = (short) nfmt.getNumFmtId();
                numberFormats.put(formatId, nfmt.getFormatCode());
            }
        }
        CTFonts ctfonts = styleSheet.getFonts();
        if (ctfonts != null) {
            int idx = 0;
            for (CTFont font : ctfonts.getFontArray()) {
                // Create the font and save it. Themes Table supplied later
                XSSFFont f = new XSSFFont(font, idx, indexedColors);
                fonts.add(f);
                idx++;
            }
        }
        CTFills ctfills = styleSheet.getFills();
        if (ctfills != null) {
            for (CTFill fill : ctfills.getFillArray()) {
                fills.add(new XSSFCellFill(fill, indexedColors));
            }
        }
        CTBorders ctborders = styleSheet.getBorders();
        if (ctborders != null) {
            for (CTBorder border : ctborders.getBorderArray()) {
                borders.add(new XSSFCellBorder(border, indexedColors));
            }
        }
        CTCellXfs cellXfs = styleSheet.getCellXfs();
        if (cellXfs != null)
            xfs.addAll(Arrays.asList(cellXfs.getXfArray()));
        CTCellStyleXfs cellStyleXfs = styleSheet.getCellStyleXfs();
        if (cellStyleXfs != null)
            styleXfs.addAll(Arrays.asList(cellStyleXfs.getXfArray()));
        CTDxfs styleDxfs = styleSheet.getDxfs();
        if (styleDxfs != null)
            dxfs.addAll(Arrays.asList(styleDxfs.getDxfArray()));
        CTTableStyles ctTableStyles = styleSheet.getTableStyles();
        if (ctTableStyles != null) {
            int idx = 0;
            for (CTTableStyle style : Arrays.asList(ctTableStyles.getTableStyleArray())) {
                tableStyles.put(style.getName(), new XSSFTableStyle(idx, styleDxfs, style, indexedColors));
                idx++;
            }
        }
    } catch (XmlException e) {
        throw new IOException(e.getLocalizedMessage());
    }
}
Also used : DefaultIndexedColorMap(org.apache.poi.xssf.usermodel.DefaultIndexedColorMap) IndexedColorMap(org.apache.poi.xssf.usermodel.IndexedColorMap) CustomIndexedColorMap(org.apache.poi.xssf.usermodel.CustomIndexedColorMap) XSSFTableStyle(org.apache.poi.xssf.usermodel.XSSFTableStyle) IOException(java.io.IOException) XSSFCellFill(org.apache.poi.xssf.usermodel.extensions.XSSFCellFill) XmlException(org.apache.xmlbeans.XmlException) XSSFFont(org.apache.poi.xssf.usermodel.XSSFFont) XSSFCellBorder(org.apache.poi.xssf.usermodel.extensions.XSSFCellBorder)

Example 4 with XSSFCellBorder

use of org.apache.poi.xssf.usermodel.extensions.XSSFCellBorder in project poi by apache.

the class XSSFCellStyle method setRightBorderColor.

/**
     * Set the color to use for the right border as a {@link XSSFColor} value
     *
     * @param color the color to use
     */
public void setRightBorderColor(XSSFColor color) {
    CTBorder ct = getCTBorder();
    if (color == null && !ct.isSetRight())
        return;
    CTBorderPr pr = ct.isSetRight() ? ct.getRight() : ct.addNewRight();
    if (color != null)
        pr.setColor(color.getCTColor());
    else
        pr.unsetColor();
    int idx = _stylesSource.putBorder(new XSSFCellBorder(ct, _theme, _stylesSource.getIndexedColors()));
    _cellXf.setBorderId(idx);
    _cellXf.setApplyBorder(true);
}
Also used : CTBorder(org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBorder) CTBorderPr(org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBorderPr) XSSFCellBorder(org.apache.poi.xssf.usermodel.extensions.XSSFCellBorder)

Example 5 with XSSFCellBorder

use of org.apache.poi.xssf.usermodel.extensions.XSSFCellBorder in project poi by apache.

the class XSSFCellStyle method getTopBorderXSSFColor.

/**
     * Get the color to use for the top border
     *
     * @return the used color or <code>null</code> if not set
     */
public XSSFColor getTopBorderXSSFColor() {
    if (!_cellXf.getApplyBorder())
        return null;
    int idx = (int) _cellXf.getBorderId();
    XSSFCellBorder border = _stylesSource.getBorderAt(idx);
    return border.getBorderColor(BorderSide.TOP);
}
Also used : XSSFCellBorder(org.apache.poi.xssf.usermodel.extensions.XSSFCellBorder)

Aggregations

XSSFCellBorder (org.apache.poi.xssf.usermodel.extensions.XSSFCellBorder)18 CTBorder (org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBorder)9 CTBorderPr (org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBorderPr)8 XSSFCellFill (org.apache.poi.xssf.usermodel.extensions.XSSFCellFill)4 XSSFFont (org.apache.poi.xssf.usermodel.XSSFFont)3 IOException (java.io.IOException)1 StylesTable (org.apache.poi.xssf.model.StylesTable)1 CustomIndexedColorMap (org.apache.poi.xssf.usermodel.CustomIndexedColorMap)1 DefaultIndexedColorMap (org.apache.poi.xssf.usermodel.DefaultIndexedColorMap)1 IndexedColorMap (org.apache.poi.xssf.usermodel.IndexedColorMap)1 XSSFTableStyle (org.apache.poi.xssf.usermodel.XSSFTableStyle)1 XmlException (org.apache.xmlbeans.XmlException)1 Before (org.junit.Before)1