## Release Notes
<div align="center">
<p><a href="https://www.nuget.org/packages/MiniExcel"><img src="https://img.shields.io/nuget/v/MiniExcel.svg" alt="NuGet"></a> <a href="https://www.nuget.org/packages/MiniExcel"><img src="https://img.shields.io/nuget/dt/MiniExcel.svg" alt=""></a>
<a href="https://ci.appveyor.com/project/shps951023/miniexcel/branch/master"><img src="https://ci.appveyor.com/api/projects/status/b2vustrwsuqx45f4/branch/master?svg=true" alt="Build status"></a>
<a href="https://gitee.com/dotnetchina/MiniExcel"><img src="https://gitee.com/dotnetchina/MiniExcel/badge/star.svg" alt="star"></a> <a href="https://github.com/shps951023/MiniExcel" rel="nofollow"><img src="https://img.shields.io/github/stars/shps951023/MiniExcel?logo=github" alt="GitHub stars"></a>
<a href="https://www.nuget.org/packages/MiniExcel"><img src="https://img.shields.io/badge/.NET-%3E%3D%204.5-red.svg" alt="version"></a>
<div align="center">
<p><strong><a href="README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.zh-Hant.md">繁體中文</a></strong></p>
<div align="center">
Your <a href="https://github.com/shps951023/MiniExcel">Star</a> and <a href="https://miniexcel.github.io">Donate</a> can make MiniExcel better
### 1.29.0
- [New] SaveAs support FastMode
- [Bug] Fixed SaveAs OOM problem
### 1.28.2
- [New] Support Assembly Strong Name Signature #450
- [New] Support QueryRange (via @1ras1)
### 1.28.1
- [Optimization] Reduce string memory allocation when template save #439 (via @cupsos)
- [Optimization] Remove dependency System.Memory #441 (via @ping9719)
### 1.28.0
- [New] Support CSV Insert #I4X92G (via @shps951023)
### 1.27.0
- [New] Support DateTimeOffset and ExcelFormat #430 (via @Lightczx , @shps951023 )
- [Optimization] SaveAs by datareader support dimension #231 (via @shps951023)
### 1.26.7
- [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)
### 1.26.6
- [OPT] Template save performance #425 (via @lileyzhao)
### 1.26.5
- [New] Added DataReader AutoFilter toggle #402 #401 (via @Rollerss)
- [New] SaveAs support empty sharedstring #405
### 1.26.4
- [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)
### 1.26.3
- [OPT] Export default buffersize from 1024 bytes -> 1024 * 512 bytes
- [New] Export support custom buffersize
- [New] SaveAsByTemplate number use InvariantCulture (via @psxbox)
### 1.26.2
- [Bug] Fixed DynamicColumnAttribute Ignore, Index error #377
### 1.26.1
- [New] DynamicColumnAttribute support Dictionary #370
- [Bug] Fixed MiniExcelDataReader SqlBulkCopy error (via @yfl8910)
### 1.26.0
- [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)
### 1.25.2
- [New] Remove overdue ExcelNumberFormat Dependency #271
### 1.25.1
- [Bug] Fixed QueryAsDataTable read big file will throw NotImplementedException #360
### 1.25.0
- [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
### 1.24.3
- [Bug] Fixed multiple threads Async error 'The given key N was not present in the dictionary' #344
- [Bug] Fixed when CultureInfo likes`ff-Latn` , datareader field type is datetime that will get error OA Date format #343
### 1.24.2
- [Bug] Fiexd Query multiple same title will cause startcell to get wrong column index #I4YCLQ
- [OPT] Optimize Query<T> algorithm
### 1.24.1
- [Bug] Fiexd QueryAsync configulation not working #338
- [Bug] Fixed QueryAsync not return dynamic type
### 1.24.0
- [New] Query support strict open xml, thanks [Weilence (Lowell)](https://github.com/Weilence) #335
- [New] SaveAs use the configured CultureInfo to write format cell value, thanks [0xced (Cédric Luthi)](https://github.com/0xced) #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
### 1.23.3
- [Bug] SaveAs CSV when value is DataTable, if Key contains `"` then column name will not show `"`。 #I4WDA9
### 1.23.2
- [New] Support System.ComponentModel.DisplayName's `[DisplayName]` as title [#I4TXGT](https://gitee.com/dotnetchina/MiniExcel/issues/I4TXGT)
- [Bug] Fix when CultureInfo like `Czech` will get invalid output with decimal numbers #331
### 1.23.0
- [New] Support `GetReader` method #328 #290 (Thanks [杨福来 Yang](https://github.com/yfl8910) )
### 1.22.0
- [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`
### 0.21.5
- [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
### 0.21.4
- [New] Remove LISENCE_CODE check
### 0.21.1
- [New] Check License Code
### 0.21.0
- [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
### 0.20.0
- [New] SaveAs support image #304
- [Opt] Improve SaveAs efficiency
### 0.19.3-beta
- [Fix] Excelnumberformat 1.1.0 valid date expired (Valid from: 2018-04-10 08:00:00 to 2021-04-14 20:00:00) [link](https://github.com/andersnm/ExcelNumberFormat/issues/34)
### 0.19.2
- [New] SaveAsByTemplate support datareader [#I4HL54](https://gitee.com/dotnetchina/MiniExcel/issues/I4HL54)
### 0.19.1
- [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
### 0.19.0
- [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](https://gitee.com/dotnetchina/MiniExcel/issues/I4DQUN)
### 0.18.0
- [New] SaveAs support enum description #I49RYZ
- [New] Query strong type support multiple column names mapping to the same property. [#I40QA5](https://gitee.com/dotnetchina/MiniExcel/issues/I40QA5)
- [Breaking Change] SaveAs by empty IEnumerable<StrongType> will generate header now empty rows now. #133
- [Bug] SaveAs sheet enum mapping cell number type #286
### 0.17.5
- [Bug] Fix xlsx file header column name with `&,<,>,",'`, the file cannot be opened.
### 0.17.4
- [Bug] Fix v0.17.3 SaveAs xlsx file will cause "XML error : Catast