From f0fe91614b3f083349ed2b443a95969e44b2e09c Mon Sep 17 00:00:00 2001 From: Nick Burch Date: Sun, 3 May 2015 07:56:40 +0000 Subject: [PATCH] Fix inconsistent indents git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1677369 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/poi/xssf/model/StylesTable.java | 895 +++++++++--------- 1 file changed, 447 insertions(+), 448 deletions(-) diff --git a/src/ooxml/java/org/apache/poi/xssf/model/StylesTable.java b/src/ooxml/java/org/apache/poi/xssf/model/StylesTable.java index d0383754f0..80b3a9ea93 100644 --- a/src/ooxml/java/org/apache/poi/xssf/model/StylesTable.java +++ b/src/ooxml/java/org/apache/poi/xssf/model/StylesTable.java @@ -62,73 +62,73 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.StyleSheetDocument; * Table of styles shared across all sheets in a workbook. */ public class StylesTable extends POIXMLDocumentPart { - private final Map numberFormats = new HashMap(); - private final boolean[] usedNumberFormats = new boolean[SpreadsheetVersion.EXCEL2007.getMaxCellStyles()]; - private final List fonts = new ArrayList(); - private final List fills = new ArrayList(); - private final List borders = new ArrayList(); - private final List styleXfs = new ArrayList(); - private final List xfs = new ArrayList(); - - private final List dxfs = new ArrayList(); - - /** - * The first style id available for use as a custom style - */ - public static final int FIRST_CUSTOM_STYLE_ID = BuiltinFormats.FIRST_USER_DEFINED_FORMAT_INDEX + 1; - private static final int MAXIMUM_STYLE_ID = SpreadsheetVersion.EXCEL2007.getMaxCellStyles(); - - private StyleSheetDocument doc; - private ThemesTable theme; - - /** - * Create a new, empty StylesTable - */ - public StylesTable() { - super(); - doc = StyleSheetDocument.Factory.newInstance(); - doc.addNewStyleSheet(); - // Initialization required in order to make the document readable by MSExcel - initialize(); - } - - public StylesTable(PackagePart part, PackageRelationship rel) throws IOException { - super(part, rel); - readFrom(part.getInputStream()); - } - - public ThemesTable getTheme() { + private final Map numberFormats = new HashMap(); + private final boolean[] usedNumberFormats = new boolean[SpreadsheetVersion.EXCEL2007.getMaxCellStyles()]; + private final List fonts = new ArrayList(); + private final List fills = new ArrayList(); + private final List borders = new ArrayList(); + private final List styleXfs = new ArrayList(); + private final List xfs = new ArrayList(); + + private final List dxfs = new ArrayList(); + + /** + * The first style id available for use as a custom style + */ + public static final int FIRST_CUSTOM_STYLE_ID = BuiltinFormats.FIRST_USER_DEFINED_FORMAT_INDEX + 1; + private static final int MAXIMUM_STYLE_ID = SpreadsheetVersion.EXCEL2007.getMaxCellStyles(); + + private StyleSheetDocument doc; + private ThemesTable theme; + + /** + * Create a new, empty StylesTable + */ + public StylesTable() { + super(); + doc = StyleSheetDocument.Factory.newInstance(); + doc.addNewStyleSheet(); + // Initialization required in order to make the document readable by MSExcel + initialize(); + } + + public StylesTable(PackagePart part, PackageRelationship rel) throws IOException { + super(part, rel); + readFrom(part.getInputStream()); + } + + public ThemesTable getTheme() { return theme; } public void setTheme(ThemesTable theme) { this.theme = theme; - + // Pass the themes table along to things which need to // know about it, but have already been created by now for(XSSFFont font : fonts) { - font.setThemesTable(theme); + font.setThemesTable(theme); } for(XSSFCellBorder border : borders) { - border.setThemesTable(theme); + border.setThemesTable(theme); } } - /** - * 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. - */ + /** + * 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. + */ @SuppressWarnings("deprecation") //YK: getXYZArray() array accessors are deprecated in xmlbeans with JDK 1.5 support - protected void readFrom(InputStream is) throws IOException { - try { - doc = StyleSheetDocument.Factory.parse(is); + protected void readFrom(InputStream is) throws IOException { + try { + doc = StyleSheetDocument.Factory.parse(is); CTStylesheet styleSheet = doc.getStyleSheet(); // Grab all the different bits we care about - CTNumFmts ctfmts = styleSheet.getNumFmts(); + CTNumFmts ctfmts = styleSheet.getNumFmts(); if( ctfmts != null){ for (CTNumFmt nfmt : ctfmts.getNumFmtArray()) { int formatId = (int)nfmt.getNumFmtId(); @@ -139,14 +139,14 @@ public class StylesTable extends POIXMLDocumentPart { 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); - fonts.add(f); - idx++; - } - } + int idx = 0; + for (CTFont font : ctfonts.getFontArray()) { + // Create the font and save it. Themes Table supplied later + XSSFFont f = new XSSFFont(font, idx); + fonts.add(f); + idx++; + } + } CTFills ctfills = styleSheet.getFills(); if(ctfills != null){ for (CTFill fill : ctfills.getFillArray()) { @@ -168,408 +168,407 @@ public class StylesTable extends POIXMLDocumentPart { if(cellStyleXfs != null) styleXfs.addAll(Arrays.asList(cellStyleXfs.getXfArray())); CTDxfs styleDxfs = styleSheet.getDxfs(); - if(styleDxfs != null) dxfs.addAll(Arrays.asList(styleDxfs.getDxfArray())); - - } catch (XmlException e) { - throw new IOException(e.getLocalizedMessage()); - } - } - - // =========================================================== - // Start of style related getters and setters - // =========================================================== - - public String getNumberFormatAt(int idx) { - return numberFormats.get(idx); - } - - public int putNumberFormat(String fmt) { - if (numberFormats.containsValue(fmt)) { - // Find the key, and return that - for (Entry numFmt : numberFormats.entrySet()) { - if(numFmt.getValue().equals(fmt)) { - return numFmt.getKey(); - } - } - throw new IllegalStateException("Found the format, but couldn't figure out where - should never happen!"); - } - - // Find a spare key, and add that - for (int i=FIRST_CUSTOM_STYLE_ID; i numFmt : numberFormats.entrySet()) { + if(numFmt.getValue().equals(fmt)) { + return numFmt.getKey(); + } + } + throw new IllegalStateException("Found the format, but couldn't figure out where - should never happen!"); + } + + // Find a spare key, and add that + for (int i=FIRST_CUSTOM_STYLE_ID; i 0) { - styleXfId = (int) xfs.get(idx).getXfId(); - } - - return new XSSFCellStyle(idx, styleXfId, this, theme); - } - public int putStyle(XSSFCellStyle style) { - CTXf mainXF = style.getCoreXf(); - - if(! xfs.contains(mainXF)) { - xfs.add(mainXF); - } - return xfs.indexOf(mainXF); - } - - public XSSFCellBorder getBorderAt(int idx) { - return borders.get(idx); - } - - public int putBorder(XSSFCellBorder border) { - int idx = borders.indexOf(border); - if (idx != -1) { - return idx; - } - borders.add(border); - border.setThemesTable(theme); - return borders.size() - 1; - } - - public XSSFCellFill getFillAt(int idx) { - return fills.get(idx); - } - - public List getBorders(){ - return borders; - } - - public List getFills(){ - return fills; - } - - public List getFonts(){ - return fonts; - } - - public Map getNumberFormats(){ - return numberFormats; - } - - public int putFill(XSSFCellFill fill) { - int idx = fills.indexOf(fill); - if (idx != -1) { - return idx; - } - fills.add(fill); - return fills.size() - 1; - } - - public CTXf getCellXfAt(int idx) { - return xfs.get(idx); - } - public int putCellXf(CTXf cellXf) { - xfs.add(cellXf); - return xfs.size(); - } - public void replaceCellXfAt(int idx, CTXf cellXf) { - xfs.set(idx, cellXf); - } - - public CTXf getCellStyleXfAt(int idx) { - return idx < styleXfs.size() ? styleXfs.get(idx) : null; - } - public int putCellStyleXf(CTXf cellStyleXf) { - styleXfs.add(cellStyleXf); - return styleXfs.size(); - } - public void replaceCellStyleXfAt(int idx, CTXf cellStyleXf) { - styleXfs.set(idx, cellStyleXf); - } - - /** - * get the size of cell styles - */ - public int getNumCellStyles(){ + numberFormats.put(i, fmt); + return i; + } + } + throw new IllegalStateException("The maximum number of Data Formats was exceeded. " + + "You can define up to " + usedNumberFormats.length + " formats in a .xlsx Workbook"); + } + + public XSSFFont getFontAt(int idx) { + return fonts.get(idx); + } + + /** + * Records the given font in the font table. + * Will re-use an existing font index if this + * font matches another, EXCEPT if forced + * registration is requested. + * This allows people to create several fonts + * then customise them later. + * Note - End Users probably want to call + * {@link XSSFFont#registerTo(StylesTable)} + */ + public int putFont(XSSFFont font, boolean forceRegistration) { + int idx = -1; + if(!forceRegistration) { + idx = fonts.indexOf(font); + } + + if (idx != -1) { + return idx; + } + + idx = fonts.size(); + fonts.add(font); + return idx; + } + public int putFont(XSSFFont font) { + return putFont(font, false); + } + + public XSSFCellStyle getStyleAt(int idx) { + int styleXfId = 0; + + // 0 is the empty default + if(xfs.get(idx).getXfId() > 0) { + styleXfId = (int) xfs.get(idx).getXfId(); + } + + return new XSSFCellStyle(idx, styleXfId, this, theme); + } + public int putStyle(XSSFCellStyle style) { + CTXf mainXF = style.getCoreXf(); + + if(! xfs.contains(mainXF)) { + xfs.add(mainXF); + } + return xfs.indexOf(mainXF); + } + + public XSSFCellBorder getBorderAt(int idx) { + return borders.get(idx); + } + + public int putBorder(XSSFCellBorder border) { + int idx = borders.indexOf(border); + if (idx != -1) { + return idx; + } + borders.add(border); + border.setThemesTable(theme); + return borders.size() - 1; + } + + public XSSFCellFill getFillAt(int idx) { + return fills.get(idx); + } + + public List getBorders(){ + return borders; + } + + public List getFills(){ + return fills; + } + + public List getFonts(){ + return fonts; + } + + public Map getNumberFormats(){ + return numberFormats; + } + + public int putFill(XSSFCellFill fill) { + int idx = fills.indexOf(fill); + if (idx != -1) { + return idx; + } + fills.add(fill); + return fills.size() - 1; + } + + public CTXf getCellXfAt(int idx) { + return xfs.get(idx); + } + public int putCellXf(CTXf cellXf) { + xfs.add(cellXf); + return xfs.size(); + } + public void replaceCellXfAt(int idx, CTXf cellXf) { + xfs.set(idx, cellXf); + } + + public CTXf getCellStyleXfAt(int idx) { + return idx < styleXfs.size() ? styleXfs.get(idx) : null; + } + public int putCellStyleXf(CTXf cellStyleXf) { + styleXfs.add(cellStyleXf); + return styleXfs.size(); + } + public void replaceCellStyleXfAt(int idx, CTXf cellStyleXf) { + styleXfs.set(idx, cellStyleXf); + } + + /** + * get the size of cell styles + */ + public int getNumCellStyles(){ // Each cell style has a unique xfs entry // Several might share the same styleXfs entry return xfs.size(); - } - - /** - * For unit testing only - */ - public int _getNumberFormatSize() { - return numberFormats.size(); - } - - /** - * For unit testing only - */ - public int _getXfsSize() { - return xfs.size(); - } - /** - * For unit testing only - */ - public int _getStyleXfsSize() { - return styleXfs.size(); - } - /** - * For unit testing only! - */ - public CTStylesheet getCTStylesheet() { - return doc.getStyleSheet(); - } + } + + /** + * For unit testing only + */ + public int _getNumberFormatSize() { + return numberFormats.size(); + } + + /** + * For unit testing only + */ + public int _getXfsSize() { + return xfs.size(); + } + /** + * For unit testing only + */ + public int _getStyleXfsSize() { + return styleXfs.size(); + } + /** + * For unit testing only! + */ + public CTStylesheet getCTStylesheet() { + return doc.getStyleSheet(); + } public int _getDXfsSize() { return dxfs.size(); } - /** - * 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 { - XmlOptions options = new XmlOptions(DEFAULT_XML_OPTIONS); - - // 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 (Entry fmt : numberFormats.entrySet()) { - CTNumFmt ctFmt = formats.addNewNumFmt(); - ctFmt.setNumFmtId(fmt.getKey()); - ctFmt.setFormatCode(fmt.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, options); - } - - @Override - protected void commit() throws IOException { - PackagePart part = getPackagePart(); - OutputStream out = part.getOutputStream(); - writeTo(out); - out.close(); - } - - private void initialize() { - //CTFont ctFont = createDefaultFont(); - XSSFFont xssfFont = createDefaultFont(); - fonts.add(xssfFont); - - CTFill[] ctFill = createDefaultFills(); - fills.add(new XSSFCellFill(ctFill[0])); - fills.add(new XSSFCellFill(ctFill[1])); - - CTBorder ctBorder = createDefaultBorder(); - borders.add(new XSSFCellBorder(ctBorder)); - - CTXf styleXf = createDefaultXf(); - styleXfs.add(styleXf); - CTXf xf = createDefaultXf(); - xf.setXfId(0); - xfs.add(xf); - } - - private static CTXf createDefaultXf() { - CTXf ctXf = CTXf.Factory.newInstance(); - ctXf.setNumFmtId(0); - ctXf.setFontId(0); - ctXf.setFillId(0); - ctXf.setBorderId(0); - return ctXf; - } - private static CTBorder createDefaultBorder() { - CTBorder ctBorder = CTBorder.Factory.newInstance(); - ctBorder.addNewBottom(); - ctBorder.addNewTop(); - ctBorder.addNewLeft(); - ctBorder.addNewRight(); - ctBorder.addNewDiagonal(); - return ctBorder; - } - - - private static CTFill[] createDefaultFills() { - CTFill[] ctFill = new CTFill[]{CTFill.Factory.newInstance(),CTFill.Factory.newInstance()}; - ctFill[0].addNewPatternFill().setPatternType(STPatternType.NONE); - ctFill[1].addNewPatternFill().setPatternType(STPatternType.DARK_GRAY); - return ctFill; - } - - private static XSSFFont createDefaultFont() { - CTFont ctFont = CTFont.Factory.newInstance(); - XSSFFont xssfFont=new XSSFFont(ctFont, 0); - xssfFont.setFontHeightInPoints(XSSFFont.DEFAULT_FONT_SIZE); - xssfFont.setColor(XSSFFont.DEFAULT_FONT_COLOR);//setTheme - xssfFont.setFontName(XSSFFont.DEFAULT_FONT_NAME); - xssfFont.setFamily(FontFamily.SWISS); - xssfFont.setScheme(FontScheme.MINOR); - return xssfFont; - } - - public CTDxf getDxfAt(int idx) { - return dxfs.get(idx); - } - - public int putDxf(CTDxf dxf) { - this.dxfs.add(dxf); - return this.dxfs.size(); - } - - public XSSFCellStyle createCellStyle() { + /** + * 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 { + XmlOptions options = new XmlOptions(DEFAULT_XML_OPTIONS); + + // 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 (Entry fmt : numberFormats.entrySet()) { + CTNumFmt ctFmt = formats.addNewNumFmt(); + ctFmt.setNumFmtId(fmt.getKey()); + ctFmt.setFormatCode(fmt.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, options); + } + + @Override + protected void commit() throws IOException { + PackagePart part = getPackagePart(); + OutputStream out = part.getOutputStream(); + writeTo(out); + out.close(); + } + + private void initialize() { + //CTFont ctFont = createDefaultFont(); + XSSFFont xssfFont = createDefaultFont(); + fonts.add(xssfFont); + + CTFill[] ctFill = createDefaultFills(); + fills.add(new XSSFCellFill(ctFill[0])); + fills.add(new XSSFCellFill(ctFill[1])); + + CTBorder ctBorder = createDefaultBorder(); + borders.add(new XSSFCellBorder(ctBorder)); + + CTXf styleXf = createDefaultXf(); + styleXfs.add(styleXf); + CTXf xf = createDefaultXf(); + xf.setXfId(0); + xfs.add(xf); + } + + private static CTXf createDefaultXf() { + CTXf ctXf = CTXf.Factory.newInstance(); + ctXf.setNumFmtId(0); + ctXf.setFontId(0); + ctXf.setFillId(0); + ctXf.setBorderId(0); + return ctXf; + } + private static CTBorder createDefaultBorder() { + CTBorder ctBorder = CTBorder.Factory.newInstance(); + ctBorder.addNewBottom(); + ctBorder.addNewTop(); + ctBorder.addNewLeft(); + ctBorder.addNewRight(); + ctBorder.addNewDiagonal(); + return ctBorder; + } + + + private static CTFill[] createDefaultFills() { + CTFill[] ctFill = new CTFill[]{CTFill.Factory.newInstance(),CTFill.Factory.newInstance()}; + ctFill[0].addNewPatternFill().setPatternType(STPatternType.NONE); + ctFill[1].addNewPatternFill().setPatternType(STPatternType.DARK_GRAY); + return ctFill; + } + + private static XSSFFont createDefaultFont() { + CTFont ctFont = CTFont.Factory.newInstance(); + XSSFFont xssfFont=new XSSFFont(ctFont, 0); + xssfFont.setFontHeightInPoints(XSSFFont.DEFAULT_FONT_SIZE); + xssfFont.setColor(XSSFFont.DEFAULT_FONT_COLOR);//setTheme + xssfFont.setFontName(XSSFFont.DEFAULT_FONT_NAME); + xssfFont.setFamily(FontFamily.SWISS); + xssfFont.setScheme(FontScheme.MINOR); + return xssfFont; + } + + public CTDxf getDxfAt(int idx) { + return dxfs.get(idx); + } + + public int putDxf(CTDxf dxf) { + this.dxfs.add(dxf); + return this.dxfs.size(); + } + + public XSSFCellStyle createCellStyle() { int xfSize = styleXfs.size(); if (xfSize > MAXIMUM_STYLE_ID) throw new IllegalStateException("The maximum number of Cell Styles was exceeded. " + "You can define up to " + MAXIMUM_STYLE_ID + " style in a .xlsx Workbook"); - - CTXf xf = CTXf.Factory.newInstance(); - xf.setNumFmtId(0); - xf.setFontId(0); - xf.setFillId(0); - xf.setBorderId(0); - xf.setXfId(0); - int indexXf = putCellXf(xf); - return new XSSFCellStyle(indexXf - 1, xfSize - 1, this, theme); - } - - /** - * Finds a font that matches the one with the supplied attributes - */ - public XSSFFont findFont(short boldWeight, short color, short fontHeight, String name, boolean italic, boolean strikeout, short typeOffset, byte underline) { - for (XSSFFont font : fonts) { - if ( (font.getBoldweight() == boldWeight) - && font.getColor() == color - && font.getFontHeight() == fontHeight - && font.getFontName().equals(name) - && font.getItalic() == italic - && font.getStrikeout() == strikeout - && font.getTypeOffset() == typeOffset - && font.getUnderline() == underline) - { - return font; - } - } - return null; - } + + CTXf xf = CTXf.Factory.newInstance(); + xf.setNumFmtId(0); + xf.setFontId(0); + xf.setFillId(0); + xf.setBorderId(0); + xf.setXfId(0); + int indexXf = putCellXf(xf); + return new XSSFCellStyle(indexXf - 1, xfSize - 1, this, theme); + } + + /** + * Finds a font that matches the one with the supplied attributes + */ + public XSSFFont findFont(short boldWeight, short color, short fontHeight, String name, boolean italic, boolean strikeout, short typeOffset, byte underline) { + for (XSSFFont font : fonts) { + if ( (font.getBoldweight() == boldWeight) + && font.getColor() == color + && font.getFontHeight() == fontHeight + && font.getFontName().equals(name) + && font.getItalic() == italic + && font.getStrikeout() == strikeout + && font.getTypeOffset() == typeOffset + && font.getUnderline() == underline) + { + return font; + } + } + return null; + } } -- 2.39.5