Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 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++;
 }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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
            });
        }
Exemplo n.º 5
0
 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++;
 }
Exemplo n.º 6
0
 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));
 }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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++;
        }
Exemplo n.º 9
0
 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(">");
 }
Exemplo n.º 10
0
 public XlsxWriter SetDefaultStyle(XlsxStyle style)
 {
     DefaultStyle = style;
     return(this);
 }
Exemplo n.º 11
0
 public XlsxWriter Write(DateTime value, XlsxStyle style = null, int columnSpan = 1)
 {
     return(Write(Util.DateToDouble(value), style, columnSpan));
 }
Exemplo n.º 12
0
 public XlsxWriter Write(int value, XlsxStyle style = null, int columnSpan = 1)
 {
     return(Write((double)value, style, columnSpan));
 }
Exemplo n.º 13
0
 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));
 }
Exemplo n.º 14
0
 public XlsxWriter BeginRow(double?height = null, bool hidden = false, XlsxStyle style = null)
 {
     return(DoOnWorksheet(() => _currentWorksheet.BeginRow(height, hidden, style)));
 }