/// <summary>
        /// Creates a new instance of a generator.
        /// </summary>
        /// <returns>Generator</returns>
        public ExcelFileGenerator CreateGenerator()
        {
            var sharedStringsInterner = new SharedStringsInterner(_defaultCapacity);
            var styleProvider         = new StyleProvider();

            var visitors = new IDataProviderVisitor[]
            {
                new EnumDataProviderVisitor(),
                new NumericDataProviderVisitor(string.IsNullOrEmpty(_numberFormat)
                    ? (int?)null
                    : styleProvider.GetColumnStyle(_numberFormat)),
                new DateTimeDataProviderVisitor(string.IsNullOrEmpty(_dateFormat)
                    ? (int?)null
                    : styleProvider.GetColumnStyle(_dateFormat)),
                new BooleanDataProviderVisitor(string.IsNullOrEmpty(_booleanFormat)
                    ? (int?)null
                    : styleProvider.GetColumnStyle(_booleanFormat)),
                new DefaultStringDataProviderVisitor(_throwOnLimit)
            };

            var columnFactory = new ExcelColumnFactory(visitors, styleProvider);

            return(new ExcelFileGenerator(columnFactory,
                                          new WorksheetWriter(_encoder, sharedStringsInterner),
                                          new SharedStringsWriter(_encoder, sharedStringsInterner),
                                          new StylesWriter(styleProvider),
                                          _templateStreamFactory(),
                                          _compressionStrategy,
                                          _compressionLevel,
                                          _propertiesFilter));
        }
Esempio n. 2
0
        /// <summary>
        /// Creates a new instance of a generator.
        /// </summary>
        /// <returns>Generator</returns>
        public ExcelFileGenerator CreateGenerator()
        {
            var sharedStringsInterner = new SharedStringsInterner(_defaultCapacity);
            var styleProvider = new StyleProvider();

            var visitors = new IDataProviderVisitor[]
            {
                new EnumDataProviderVisitor(),
                new NumericDataProviderVisitor(string.IsNullOrEmpty(_numberFormat)
                    ? (int?) null
                    : styleProvider.GetColumnStyle(_numberFormat)),
                new DateTimeDataProviderVisitor(string.IsNullOrEmpty(_dateFormat)
                    ? (int?) null
                    : styleProvider.GetColumnStyle(_dateFormat)),
                new BooleanDataProviderVisitor(string.IsNullOrEmpty(_booleanFormat)
                    ? (int?) null
                    : styleProvider.GetColumnStyle(_booleanFormat)),
                new DefaultStringDataProviderVisitor(_throwOnLimit)
            };

            var columnFactory = new ExcelColumnFactory(visitors, styleProvider);

            return new ExcelFileGenerator(columnFactory,
                new WorksheetWriter(_encoder, sharedStringsInterner),
                new SharedStringsWriter(_encoder, sharedStringsInterner),
                new StylesWriter(styleProvider),
                _templateStreamFactory(),
                _compressionStrategy,
                _compressionLevel,
                _propertiesFilter);
        }
Esempio n. 3
0
 public ExcelFileGenerator(ExcelColumnFactory factory,
                           IWorksheetWriter worksheetWriter,
                           ISharedStringsWriter sharedStringsWriter,
                           IStylesWriter stylesWriter,
                           Stream templateStream,
                           CompressionStrategy compressionStrategy,
                           CompressionLevel compressionLevel,
                           Func <IEnumerable <PropertyInfo>, IEnumerable <PropertyInfo> > propertiesFilter)
 {
     _factory             = factory;
     _worksheetWriter     = worksheetWriter;
     _sharedStringsWriter = sharedStringsWriter;
     _stylesWriter        = stylesWriter;
     _templateStream      = templateStream;
     _compressionStrategy = compressionStrategy;
     _compressionLevel    = compressionLevel;
     _propertiesFilter    = propertiesFilter;
 }