/** * Write this table out as XML. * * @param out The stream to write to. * @throws IOException if an error occurs while writing. */ public void WriteTo(Stream out1) { // Work on the current one // Need to do this, as we don't handle // all the possible entries yet CT_Stylesheet styleSheet = doc.GetStyleSheet(); // Formats CT_NumFmts ctFormats = new CT_NumFmts(); ctFormats.count = (uint)numberFormats.Count; if (ctFormats.count > 0) ctFormats.countSpecified = true; foreach (KeyValuePair<int, String> fmt in numberFormats) { CT_NumFmt ctFmt = ctFormats.AddNewNumFmt(); ctFmt.numFmtId = (uint)fmt.Key; ctFmt.formatCode = fmt.Value; } styleSheet.numFmts = (ctFormats); int idx; // Fonts CT_Fonts ctFonts = new CT_Fonts(); ctFonts.count = (uint)fonts.Count; if (ctFonts.count > 0) ctFonts.countSpecified = true; CT_Font[] ctfnt = new CT_Font[fonts.Count]; idx = 0; foreach (XSSFFont f in fonts) ctfnt[idx++] = f.GetCTFont(); ctFonts.SetFontArray(ctfnt); styleSheet.fonts = (ctFonts); // Fills var ctf = new List<CT_Fill>(fills.Count); foreach (XSSFCellFill f in fills) ctf.Add( f.GetCTFill()); CT_Fills ctFills = new CT_Fills(); ctFills.SetFillArray(ctf); ctFills.count = (uint)fills.Count; if (ctFills.count > 0) ctFills.countSpecified = true; styleSheet.fills = ctFills; // Borders List<CT_Border> ctb = new List<CT_Border>(borders.Count); idx = 0; foreach (XSSFCellBorder b in borders) ctb.Add(b.GetCTBorder()); CT_Borders ctBorders = new CT_Borders(); ctBorders.SetBorderArray(ctb); ctBorders.count = (uint)ctb.Count; if (ctBorders.count > 0) ctBorders.countSpecified = true; styleSheet.borders = ctBorders; // Xfs if (xfs.Count > 0) { CT_CellXfs ctXfs = new CT_CellXfs(); ctXfs.count = (uint)xfs.Count; if (ctXfs.count > 0) ctXfs.countSpecified = true; ctXfs.xf = xfs; styleSheet.cellXfs = (ctXfs); } // Style xfs if (styleXfs.Count > 0) { CT_CellStyleXfs ctSXfs = new CT_CellStyleXfs(); ctSXfs.count = (uint)(styleXfs.Count); if (ctSXfs.count > 0) ctSXfs.countSpecified = true; ctSXfs.xf = styleXfs; styleSheet.cellStyleXfs = (ctSXfs); } // Style dxfs if (dxfs.Count > 0) { CT_Dxfs ctDxfs = new CT_Dxfs(); ctDxfs.count = (uint)dxfs.Count; if (ctDxfs.count > 0) ctDxfs.countSpecified = true; ctDxfs.dxf = dxfs; styleSheet.dxfs = (ctDxfs); } // Save doc.Save(out1); }