[New] Add freeze panes (#626) (via @meld-cp)
[New] Add DateTime Nullale support (via @jiaguangli)
[OPT] Reduce memory requirements when processing templates + template formulas (#638) (via @meld-cp)
[Bug] Fix problem with multi-line when using Query (#628) (via @meld-cp)
[Bug] Fix empty data reader issue. (#629) (via @duszekmestre)
[Bug] Fix Fields of type long cannot be set to text normally #627 (via @shps951023)
[New] Support Template formulas (#622) (via @meld-cp)
[New] Update DynamicConfiguration format (#595) (via @wangboshun)
[OPT] CSV enumeration and code reusage (#600) (via @duszekmestre)
[OPT] 1900 year DateTime correction #599 (via @duszekmestre)
[New] .NET5^ support image ReadOnlySpan<byte> (via @shps951023)
[Bug] Remove bug with Portable.System.DateTimeOnly and only support DateOnly .NET6^ #594 (via @shps951023)
[New] Using DynamicConfiguration when writing data using DataTable (via @pszybiak)
[New] Make System.DateOnly available as date in Excel (#576) (via @ofthelit)
[New] Allow ampersand in sheet names (via @ofthelit)
[OPT] Use true async processing for excel writer (#573) (via @duszekmestre)
[Bug] Fix nullable enumeration conversion failure #567) (via @PurplestViper)
[Bug] IEnumerable traversed twice #422 (via @Discolai)
[Bug] Fix Read empty string as null (via @pszybiak)
[Bug] Fix CSV Reader Query faild on specific xlsx file, throws ExcelColumnNotFoundException (via @AZhrZho)
[Bug] Fix DynamicExcelColumn configuration while saving IDictionary values (via @johannes-barta)
[Bug] Fix propInfo.Key missing (via @shps951023)
[Bug] Fix sharedStrings ref #549 (via @shps951023)
[Bug] DescriptionAttr null check(via @wulaoh)
[Bug] Throw custom exception when CSV column not found #543 (via @pszybiak)
[Bug] SaveAsByTemplate rowInfo.IEnumerableMercell.Height null exception #553 (via @shps951023)
[New] Support automatic merge for same vertical cells between @merge and @endmerge tags (via @eynarhaji)
[New] Limit merge tagged columns with @mergelimit column. First merge limited column and then merge other columns accordingly. (via @eynarhaji)
[New] Support dynamic columns when generating sheet by IDataReader to change columns names & widths #514 (via @Laxynium)
[Bug] Fix R1C1 reference to A1 reference bug (via @ivan132)
[OPT] Support property cache #23 (via @RRQM_Home)
[New] Support Fields #490 (via @jsgervais)
[New] Support skipping null values when writing to Excel #497 (via @0MG-DEN)
[Bug] Fix calc chain.xml #491(via @ArgoZhang)
[Bug] Support some sheet /xl location error #494 (via @ArgoZhang)
[New] support if/else statements inside cell (via @eynarhaji)
[New] support grouped rows (via @eynarhaji)
[New] support automatic merge for same vertical cells (via @eynarhaji)
[New] support function to custom separator (via @hyzx86)
[New] support config for get sheet names (via @H4ad)
[New] Remove .NET 5.0 support
[New] support excel enum description string to enum #289 (via @KaneLeung)
[New] SaveAs support FastMode
[Bug] Fixed SaveAs OOM problem
[New] Support Assembly Strong Name Signature #450
[New] Support QueryRange (via @1ras1)
[Optimization] Reduce string memory allocation when template save #439 (via @cupsos)
[Optimization] Remove dependency System.Memory #441 (via @ping9719)
[New] Support CSV Insert #I4X92G (via @shps951023)
[New] Support DateTimeOffset and ExcelFormat #430 (via @Lightczx , @shps951023 )
[Optimization] SaveAs by datareader support dimension #231 (via @shps951023)
[OPT] Reduce memory allocation when using MemoryStream #427 (via @cupsos)
[OPT] Add System.Memory pacakge #427 (via @cupsos)
[OPT] Reduce memory allocation in GetImageFormat() #427 (via @cupsos)
[Bug] Fixed MiniExcel.SaveAsByTemplate error when value is List<Dictionary<string, object>> #413 (via @shps951023)
[OPT] Template save performance #425 (via @lileyzhao)
[New] Added DataReader AutoFilter toggle #402 #401 (via @Rollerss)
[New] SaveAs support empty sharedstring #405
[Bug] Using stream.SaveAs will close the Stream automatically when Specifying excelType
[OPT] Optimize Query big file _IntMappingAlphabet.Count hot loading count (#400 via @CollapseNav)
[OPT] Export default buffersize from 1024 bytes -> 1024 * 512 bytes
[New] Export support custom buffersize
[New] SaveAsByTemplate number use InvariantCulture (via @psxbox)
[Bug] Fixed DynamicColumnAttribute Ignore, Index error #377
[New] DynamicColumnAttribute support Dictionary #370
[Bug] Fixed MiniExcelDataReader SqlBulkCopy error (via @yfl8910)
[New] Support DynamicColumnAttribute (via @y976362357, @shps951023)
[New] Support ExcelColumnAttribute to merge attributes (#357 via @Weilence)
[OPT] Only when necessary system will converts ExpandoObject type (#366 via @isdaniel)
[OPT] Optimize startsWith & EndWith performance (#365 via @isdaniel)
[New] Remove overdue ExcelNumberFormat Dependency #271
[Bug] Fixed QueryAsDataTable read big file will throw NotImplementedException #360
[New] Support SharingStrings disk cache (when this file size >= 5 MB), it can reduce reading 2GB SharingStrings only needs 1~13 MB memory #117(#346 via @Weilence) (via @shps951023)
[New] Async support cancellationToken (#350 via @isdaniel)
[New] SaveAs support overwriteFile parameter for enable/unable overwriting exist file #307
[Bug] SaveAs by datareader, sometime it will add one more autoFilter column #352
[Bug] Fixed multiple threads Async error 'The given key N was not present in the dictionary' #344
[Bug] Fixed when CultureInfo likesff-Latn , datareader field type is datetime that will get error OA Date format #343
[Bug] Fiexd Query multiple same title will cause startcell to get wrong column index #I4YCLQ
[OPT] Optimize Query algorithm
[Bug] Fiexd QueryAsync configulation not working #338
[Bug] Fixed QueryAsync not return dynamic type
[New] Query support strict open xml, thanks Weilence (Lowell) #335
[New] SaveAs use the configured CultureInfo to write format cell value, thanks 0xced (Cédric Luthi) #333
[New] SaveAsByTemplate default ignore template missing parameter key exception, OpenXmlConfiguration.IgnoreTemplateParameterMissing can control it. #I4WXFB
[New] SaveAsByTemplate will clean template string when parameter is IEnumerable and empty collection. #I4WM67
[Bug] SaveAs CSV when value is DataTable, if Key contains " then column name will not show "。 #I4WDA9
[New] Support System.ComponentModel.DisplayName's [DisplayName] as title #I4TXGT
[Bug] Fix when CultureInfo like Czech will get invalid output with decimal numbers #331
[New] Support GetReader method #328 #290 (Thanks 杨福来 Yang )
[New] SaveAs support to custom CultureInfo #316
[New] Query support to custom CultureInfo #316
[New] New efficiency byte array Converter #327
[Breaking Change] Remove Byte Array to base64 Converter
[Breaking Change] Replace ConvertByteArrayToBase64String by EnableConvertByteArray
[Bug] Fix SaveAs multiple sheet value error "Excel completed file level validation and repair. Some parts of this workbook may have been repaired or discarded." #325
[New] Remove LISENCE_CODE check
[New] ExcelFormat support DateTimeOffset/Decimal/double etc. type format #I49RZH #312 #305
[New] Support byte file import/export
[New] SaveAs support to convert byte[] value to base64 string
[New] Query support to convert base64 value to byte[]
[New] OpenXmlConfiguration add ConvertByteArrayToBase64String to turn on/off base64 convertor
[New] Query support ExcelInvalidCastException to store column, row, value data #309
[New] SaveAs support image #304
[Opt] Improve SaveAs efficiency
[Fix] Excelnumberformat 1.1.0 valid date expired (Valid from: 2018-04-10 08:00:00 to 2021-04-14 20:00:00) link
[New] SaveAsByTemplate support datareader #I4HL54
[New] QueryAsDataTable remove empty column keys. #298
[Bug] Error NU3037: ExcelNumberFormat 1.1.0 #302
[Bug] Prefix and suffix blank space will lost after SaveAs #294
[New] SaveAs default style with autoFilter mode. #190
[New] Add ConvertCsvToXlsx、ConvertXlsxToCsv method. #292
[New] OpenXmlConfiguration add AutoFilter property.
[Bug] Fix after CSV Query then SaveAs system will throw "Stream was not readable." exception. #293
[Bug] Fix SaveAsByTemplate & convert to & I4DQUN
[New] SaveAs support enum description #I49RYZ
[New] Query strong type support multiple column names mapping to the same property. #I40QA5
[Breaking Change] SaveAs by empty IEnumerable will generate header now empty rows now. #133
[Bug] SaveAs sheet enum mapping cell number type #286
[Bug] Fix xlsx file header column name with &,<,>,",', the file cannot be opened.
[Bug] Fix v0.17.3 SaveAs xlsx file will cause "XML error : Catastrophic failure"
[New] Support set column width #280
[Bug] Fix csv not support QueryAsDataTable #279
[OPT] Clearer exception message when file is illegal excel zip format. #272
[Bug] Fix v0.16.0-0.17.1 custom format contains specific format (eg:#,##0.000_);[Red]\(#,##0.000\)), automatic converter will convert double to datetime #267
[New] Add QueryAsDataTableAsync(this Stream stream..)
[OPT] More clear strong type conversion error message #I3X2ZL
[New] Query support custom datetime format mapping datetime type #256
[Bug] Fix Query call convertValueByStyleFormat method repeatedly, cause waste of resources #259
[Bug] Chinese env datetime format InvalidCastException #257
[Breaking Change] Set CSV Reader/Writer default encoding : UTF-8 => UTF-8-BOM
[Breaking Change] Rename CsvConfiguration GetStreamReaderFunc => StreamReaderFunc
[New] Csv SaveAs support custom StreamWriter
[New] Csv SaveAs support datareader
[New] Support Custom Datetime format #241
[Bug] Csv type mapping Query error "cannot be converted to xxx type" #243
[Bug] No error exception throw when reading xls file #242
[Breaking Change] Stream cannot know the file type, please specify ExcelType manually
[Bug] Fix Sheetxml writer error, it contains two ">" #240
[New] SaveAs change default style and provide style options enum #132
[New] Support SaveAs by DataSet #235
[Bug] Fix csv Query split comma not correct #237 #I3R95M
[Bug] QueryAsDataTable type check problem, e.g A2=5.5 , A3=0.55/1.1 will case double type check error #233
[New] SaveAs Support Create Multiple Sheets
[Breaking Change] Change GetSheetNames type IEnumerable -> List
[Bug] Fix SaveAs by datareader error "Invalid attempt to call FieldCount when reader is closed" #230
[Breaking Change] Rename OpenXmlConfiguration FillMergedCells
[New] Query support Fill Merged Cells Down #122
[Bug] Fix QueryAsDataTable error "Cannot set Column to be null" #229
[Opt] Support Xlsm AutoCheck #227
[Bug] Fix SaveAsByTemplate single column demension index error #226
[Bug] Fix asp.net webform gridview datasource can't use QueryAsDataTable #223
[Bug] Fix custom m/d format not convert datetime #222
[New] Query、GetColumns support startCell #147
[New] GetColumns support read headers
[New] Support QueryAsDataTable method #216
[New] SaveAs support IDataReader value parameter #211
[Bug] Fix numeric format string will be cast to numeric type #I3OSKV
[Opt] Optimize SaveAs convert value type logic to improve performance
[Changed] DataTable use Caption for column name first, then use columname #217
[New] Type Query support Enum mapping #89
[OPT] Optimize stream excel type check #215
[New] Support open with read only mode, avoid error of The process cannot access the file because it is being used by another process #87
[Breaking Change] Change CSV SaveAs datetime default format : "yyyy-MM-dd HH:mm:ss"
[Bug] Fixed SaveAsByTemplate when merge cells will cause collection rendering error #207
[Bug] Fixed MiniExcel.SaveAs(path, value,sheetName:"Name"), the actual sheetName is Sheet1
[Bug] Fix Column more than 255 rows cannot be read error #208
[New] SaveAsByTemplate by template bytes, convenient to cache and support multiple users to read the same template at the same time #189
[New] SaveAsByTemplate support input IEnmerable<IDicionary<string,object>> or DapperRows or DataTable parameters #201
[Bug] Fix after stream SaveAs/SaveAsByTemplate, miniexcel will close stream #200
[New] Support .NET Framework 4.5
[Bug] Fix template excel that with namespace prefix will cause parsing error #193
[OPT] Optimize template paresing performance
[Bug] Template concating cell value type problem #179
[Bug] Template fix non-nullable numeric type cell type is 'str' #180
[OPT] Optimize performance of filling excel
[OPT] Template IEnumerable generate support type auto mapping (Issue #177)
[New] Support GetColumns method #174
[New] Template support $rowindex keyword to get current row index
[Bug] Dimension without x prefix #175
[New] Support Filling Excel by SaveAsByTemplate method to fill data into excel by xlsx template
[New] Support ColumnIndex Attribute #142 & #I3I3EB
[Bug] Fix issue #157 : Special conditions will get the wrong worksheet name
[Update] issue #150 : SaveAs input IEnuerable should throw clear msg exception
[New] Added GetSheetNames method support multi-sheets Query
[New] Query support by sheet name
[New] Csv SaveAs support DataTable/Dictionary parameters
[New] CsvConfiguration support custom newLine & seperator & GetStreamReaderFunc
[OPT] Optimize SaveAs/Query excel file type auto-check
0.10.3(Don't use this version)
[Bug] Fix Query SharedStrings control character not encoding (issue Issue #149 )
0.10.2(Don't use this version)
[Bug] Fix SharedStrings get wrong index (issue #153 )
[Bug] SaveAs support control character encoding (issue Issue #149 )
0.10.1(Don't use this version)
[New] SaveAs support POCO excel column name/ignore attribute
0.10.0(Don't use this version)
[New] Query dynamic with first head will ignore blank/whitespace columns
[New] Query type mapping support Custom POCO excel column name/ignore attribute
0.9.1(Don't use this version)
[Bug] Solve cannot convert Cell value to Nullable (issue #138)
0.9.0(Don't use this version)
[Bug] Solve System.IO.Compression referencing twice (issue #97)
[Bug] StrongTypeMapping Query empty row will be generated repeatedly
0.8.0(Don't use this version)
[New] Add MiniExcel.Query by file path method
0.7.0(Don't use this version)
Optimize SaveAs logic
[Breaking Change] SaveAs value parameter change type check logic
0.6.0(Don't use this version)
[New] SaveAs support parameter IEnumerable deferred execution
[Breaking Change] Remove SaveAs by object, now only support Datatable,IEnumerable,ICollection
[Bug] Fix empty rows generate excel error (issue: #128)
0.5.0(Don't use this version)
[New] Support OpenXml Xlsx SaveAs writer mode that avoids OOM
[Breaking Change] Remove SaveAs startCell parameter
[Bug] Fix SaveAs dimension printHeader:true not correct
0.4.0(Don't use this version)
[New] Support create CSV by file path or stream
[New] Support csv custom configuration setting
[New] Support auto/manual specify excel type (xlsx or csv)
[Breaking Changes] Remove Query First/FirstOrDefault/Single/SingleOrDefault, user can use LINQ method do it.
0.3.0(Don't use this version)
[New] Support SaveAs by IEnumerable of DapperRow and IDictionary<string,object>
[New] Support dynamic query timespan style format mapping to timespan type.
0.2.3(Don't use this version)
[Bug] Fix ShMemory leak and static problem.
[New] Support style datetime format mapping to datetime type.
0.2.2(Don't use this version)
0.2.1(Don't use this version)
[Optimize] Optimize type mapping bool and datetime auto check
[New] Query Support xl/worksheets/Sheet Xml Xml <c> without r attribute or without <dimension> but <c> with r attribute, but now performance is slow than with dimension ( )
0.2.0(Don't use this version)
0.1.0-preview(Don't use this version)
[New] Add Query strongly typed mapping
[New] Add QueryFirstOrDefault、QuerySingle、QuerySingleOrDefault
0.0.7-beta(Don't use this version)
[New] Add QueryFirst method
0.0.6-beta(Don't use this version)
[Breaking Changes] Replace Create by SavaAs
0.0.5-beta(Don't use this version)
Release remove assembly: InternalsVisibleTo
0.0.4-beta(Don't use this version)
[New] Support SaveAs Stream
0.0.3-beta(Don't use this version)
[New] Support Query dynamic and IEnumrable Deferred Execution to avoid OOM
[New] MiniExcelHelper.Create value type change to ICollection
[New] Encode XML Value ' " > < &
[New] Check Multiple Sheet Index Order
[New] Dynamic Query support A,B,C.. column name key
[New] Support insert empty Rows between rows
0.0.2-beta(Don't use this version)
[New] Add MiniExcelHelper.Read Method
[Breaking Changes] Remove System.IO.Packaging.Package Dependency, and replaced by System.IO.Compression.ZipArchive
0.0.1-beta(Don't use this version)
[New] Add MiniExcelHelper.Create