diff --git a/appveyor6.yml b/appveyor6.yml index 62a58b63f..d325251b6 100644 --- a/appveyor6.yml +++ b/appveyor6.yml @@ -1,4 +1,4 @@ -version: 6.2.12.{build} +version: 6.2.13.{build} branches: only: - develop6 @@ -6,16 +6,16 @@ configuration: release image: Visual Studio 2022 init: - ps: >- - Update-AppveyorBuild -Version "6.2.12.$env:appveyor_build_number-$(Get-Date -format yyyyMMdd)-$env:appveyor_repo_branch" + Update-AppveyorBuild -Version "6.2.13.$env:appveyor_build_number-$(Get-Date -format yyyyMMdd)-$env:appveyor_repo_branch" - Write-Host "6.2.12.$env:appveyor_build_number-$(Get-Date -format yyyyMMdd)-$env:appveyor_repo_branch" + Write-Host "6.2.13.$env:appveyor_build_number-$(Get-Date -format yyyyMMdd)-$env:appveyor_repo_branch" dotnet_csproj: patch: true file: '**\*.csproj' version: '{version}' - assembly_version: 6.2.12.{build} - file_version: 6.2.12.{build} + assembly_version: 6.2.13.{build} + file_version: 6.2.13.{build} nuget: project_feed: true before_build: diff --git a/docs/articles/fixedissues.md b/docs/articles/fixedissues.md index 33f1b9c7e..f8d726b2f 100644 --- a/docs/articles/fixedissues.md +++ b/docs/articles/fixedissues.md @@ -1,4 +1,12 @@ # Features / Fixed issues - EPPlus 6 +## Version 6.2.13 +### Fixed issues +* Fixed a bug where adding the same image to a worksheet twice with the same path resulted in a null reference. +* Resolved workbooks becoming corrupt when setting ShowTotalRow on tables to true, if data existed on the row below the table. The row will now be overwritten by the total row. +* Tab-characters in Richtext's are now decoded correctly. +* Last character of RichText.Text were truncated under Linux. +* LoadFromCollection: support for SortOrder attribute on nested classes. + ## Version 6.2.12 ### Fixed issues * Copying a worksheet with the ExcelWorksheet.CodeModuleName set and not having a VBA project in the workbook caused the name to be duplicated. diff --git a/src/EPPlus/EPPlus.csproj b/src/EPPlus/EPPlus.csproj index 212bb0192..ac9e20b56 100644 --- a/src/EPPlus/EPPlus.csproj +++ b/src/EPPlus/EPPlus.csproj @@ -1,9 +1,9 @@  net7.0;net6.0;netstandard2.1;netstandard2.0;net462;net35 - 6.2.12.0 - 6.2.12.0 - 6.2.12 + 6.2.13.0 + 6.2.13.0 + 6.2.13 true https://epplussoftware.com EPPlus Software AB @@ -18,7 +18,7 @@ readme.md EPPlus Software AB - EPPlus 6.2.12 + EPPlus 6.2.13 IMPORTANT NOTICE! From version 5 EPPlus changes the license model using a dual license, Polyform Non Commercial / Commercial license. @@ -26,6 +26,9 @@ Commercial licenses can be purchased from https://epplussoftware.com This applies to EPPlus version 5 and later. Earlier versions are still licensed LGPL. + ## Version 6.2.13 + * Bug fixes. + ## Version 6.2.12 * Bug fixes. @@ -329,7 +332,8 @@ A list of fixed issues can be found here https://epplussoftware.com/docs/5.8/articles/fixedissues.html Version history - 6.2.12 20231109 Minor bug fixes.See https://epplussoftware.com/Developers/MinorFeaturesAndIssues + 6.2.13 20231123 Minor bug fixes.See https://epplussoftware.com/Developers/MinorFeaturesAndIssues + 6.2.12 20231109 Minor bug fixes. 6.2.11 20231026 Minor bug fixes. 6.2.10 20231002 Minor bug fixes. 6.2.9 20230908 Minor bug fixes. diff --git a/src/EPPlus/FormulaParsing/DependencyChain/DependenyChainFactory.cs b/src/EPPlus/FormulaParsing/DependencyChain/DependenyChainFactory.cs index 48c27cd1b..4c1d5c173 100644 --- a/src/EPPlus/FormulaParsing/DependencyChain/DependenyChainFactory.cs +++ b/src/EPPlus/FormulaParsing/DependencyChain/DependenyChainFactory.cs @@ -172,42 +172,44 @@ private static void FollowChain(DependencyChain depChain, ILexer lexer, ExcelWor { adr.SetRCFromTable(ws._package, new ExcelAddressBase(f.Row, f.Column, f.Row, f.Column)); } - - if(adr.WorkSheetName != null && - adr.WorkSheetName.Equals((f.ws ?? ws)?.Name, - StringComparison.OrdinalIgnoreCase) && - string.IsNullOrEmpty(adr._wb) && - adr.Collide(new ExcelAddressBase(f.Row, f.Column, f.Row, f.Column))!=ExcelAddressBase.eAddressCollition.No) + if (adr.ExternalReferenceIndex < 1) { - var tt = t.GetTokenTypeFlags() | TokenType.CircularReference; - f.Tokens[f.tokenIx] = t.CloneWithNewTokenType(tt); - f.tokenIx++; - continue; - //throw (new CircularReferenceException(string.Format("Circular Reference in cell {0}", ExcelAddressBase.GetAddress(f.Row, f.Column)))); - } + if (adr.WorkSheetName != null && + adr.WorkSheetName.Equals((f.ws ?? ws)?.Name, + StringComparison.OrdinalIgnoreCase) && + string.IsNullOrEmpty(adr._wb) && + adr.Collide(new ExcelAddressBase(f.Row, f.Column, f.Row, f.Column)) != ExcelAddressBase.eAddressCollition.No) + { + var tt = t.GetTokenTypeFlags() | TokenType.CircularReference; + f.Tokens[f.tokenIx] = t.CloneWithNewTokenType(tt); + f.tokenIx++; + continue; + //throw (new CircularReferenceException(string.Format("Circular Reference in cell {0}", ExcelAddressBase.GetAddress(f.Row, f.Column)))); + } - if (adr._fromRow > 0 && adr._fromCol > 0) - { - if (string.IsNullOrEmpty(adr.WorkSheetName)) + if (adr._fromRow > 0 && adr._fromCol > 0) { - if (f.iteratorWs == null) + if (string.IsNullOrEmpty(adr.WorkSheetName)) { - f.iteratorWs = ws; + if (f.iteratorWs == null) + { + f.iteratorWs = ws; + } + else if (f.ws.IndexInList != f.wsIndex) + { + f.iteratorWs = wb.Worksheets._worksheets[f.wsIndex]; + } } - else if (f.ws.IndexInList != f.wsIndex) + else { - f.iteratorWs = wb.Worksheets._worksheets[f.wsIndex]; + f.iteratorWs = wb.Worksheets[adr.WorkSheetName]; } - } - else - { - f.iteratorWs = wb.Worksheets[adr.WorkSheetName]; - } - if (f.iteratorWs != null) - { - f.iterator = new CellStoreEnumerator(f.iteratorWs._formulas, adr.Start.Row, adr.Start.Column, adr.End.Row, adr.End.Column); - goto iterateCells; + if (f.iteratorWs != null) + { + f.iterator = new CellStoreEnumerator(f.iteratorWs._formulas, adr.Start.Row, adr.Start.Column, adr.End.Row, adr.End.Column); + goto iterateCells; + } } } }