public int ResolveStyleId(XlsxStyle style) { if (_styles.TryGetValue(style, out var id)) { return(id); } if (!_fonts.TryGetValue(style.Font, out var fontId)) { fontId = _nextFontId++; _fonts.Add(style.Font, fontId); } if (!_fills.TryGetValue(style.Fill, out var fillId)) { fillId = _nextFillId++; _fills.Add(style.Fill, fillId); } if (!_borders.TryGetValue(style.Border, out var borderId)) { borderId = _nextBorderId++; _borders.Add(style.Border, borderId); } if (!_numberFormats.TryGetValue(style.NumberFormat, out var numberFormatId)) { numberFormatId = _nextNumberFormatId++; _numberFormats.Add(style.NumberFormat, numberFormatId); } id = _nextStyleId++; _styles.Add(style, id); return(id); }
public void Write(double value, XlsxStyle style) { EnsureRow(); _streamWriter.Write("<c r=\"{0}{1}\" s=\"{2}\"><v>{3}</v></c>", Util.GetColumnName(CurrentColumnNumber), CurrentRowNumber, _stylesheet.ResolveStyleId(style), value); CurrentColumnNumber++; }
public void Write(XlsxStyle style, int repeatCount) { EnsureRow(); var resolveStyleId = _stylesheet.ResolveStyleId(style); for (var i = 0; i < repeatCount; i++) { _streamWriter.Write("<c r=\"{0}{1}\" s=\"{2}\"/>", Util.GetColumnName(CurrentColumnNumber++), CurrentRowNumber, resolveStyleId); } }
public XlsxWriter(Stream stream, CompressionLevel compressionLevel = CompressionLevel.Level3, bool useZip64 = false) { _worksheets = new List <Worksheet>(); _stylesheet = new Stylesheet(); DefaultStyle = XlsxStyle.Default; _zipWriter = (ZipWriter)WriterFactory.Open(stream, ArchiveType.Zip, new ZipWriterOptions(CompressionType.Deflate) { DeflateCompressionLevel = compressionLevel, UseZip64 = useZip64 }); }
public void WriteFormula(string formula, XlsxStyle style, IConvertible result) { EnsureRow(); _streamWriter.Write("<c r=\"{0}{1}\" s=\"{2}\" t=\"str\"><f>{3}</f>", Util.GetColumnName(CurrentColumnNumber), CurrentRowNumber, _stylesheet.ResolveStyleId(style), Util.EscapeXmlText(formula)); if (result != null) { _streamWriter.Write("<v>{0}</v>", Util.EscapeXmlText(result.ToString(CultureInfo.InvariantCulture))); } _streamWriter.Write("</c>"); CurrentColumnNumber++; }
public XlsxWriter WriteFormula(string formula, XlsxStyle style = null, int columnSpan = 1, IConvertible result = null) { return(columnSpan == 1 ? DoOnWorksheet(() => { if (result == null) { _hasFormulasWithoutResult = true; } _currentWorksheet.WriteFormula(formula, style ?? DefaultStyle, result); }) : AddMergedCell(1, columnSpan).WriteFormula(formula, style, 1, result).Write(style, repeatCount: columnSpan - 1)); }
public XlsxWriter Write(XlsxStyle style = null, int columnSpan = 1, int repeatCount = 1) { if (columnSpan == 1) { return(DoOnWorksheet(() => _currentWorksheet.Write(style ?? DefaultStyle, repeatCount))); } for (var i = 0; i < repeatCount; i++) { AddMergedCell(1, columnSpan).Write(style, 1).Write(style, repeatCount: columnSpan - 1); } return(this); }
public void Write(string value, XlsxStyle style) { if (value == null) { Write(style, 1); return; } EnsureRow(); _streamWriter.Write("<c r=\"{0}{1}\" s=\"{2}\" t=\"inlineStr\"><is><t>{3}</t></is></c>", Util.GetColumnName(CurrentColumnNumber), CurrentRowNumber, _stylesheet.ResolveStyleId(style), Util.EscapeXmlText(value)); CurrentColumnNumber++; }
public void BeginRow(double?height, bool hidden, XlsxStyle style) { CloseLastRow(); CurrentRowNumber++; CurrentColumnNumber = 1; _streamWriter.Write("<row r=\"{0}\"", CurrentRowNumber); if (height.HasValue) { _streamWriter.Write(" ht=\"{0}\" customHeight=\"1\"", height); } if (hidden) { _streamWriter.Write(" hidden=\"1\""); } if (style != null) { _streamWriter.Write(" s=\"{0}\" customFormat=\"1\"", _stylesheet.ResolveStyleId(style)); } _streamWriter.Write(">"); }
public XlsxWriter SetDefaultStyle(XlsxStyle style) { DefaultStyle = style; return(this); }
public XlsxWriter Write(DateTime value, XlsxStyle style = null, int columnSpan = 1) { return(Write(Util.DateToDouble(value), style, columnSpan)); }
public XlsxWriter Write(int value, XlsxStyle style = null, int columnSpan = 1) { return(Write((double)value, style, columnSpan)); }
public XlsxWriter Write(double value, XlsxStyle style = null, int columnSpan = 1) { return(columnSpan == 1 ? DoOnWorksheet(() => _currentWorksheet.Write(value, style ?? DefaultStyle)) : AddMergedCell(1, columnSpan).Write(value, style, 1).Write(style, repeatCount: columnSpan - 1)); }
public XlsxWriter BeginRow(double?height = null, bool hidden = false, XlsxStyle style = null) { return(DoOnWorksheet(() => _currentWorksheet.BeginRow(height, hidden, style))); }