From 503214329ab94877697d43d13dd8878621a46ed7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4llman?= Date: Fri, 12 Dec 2025 10:30:45 +0100 Subject: [PATCH 1/6] EPPlus version 8.4.0 --- appveyor8.yml | 10 ++++---- docs/articles/fixedissues.md | 24 +++++++++++++++++++ src/Directory.Build.props | 4 ++++ .../EPPlus.Interfaces.csproj | 8 +++---- .../EPPlus.System.Drawing.csproj | 15 +++++++----- src/EPPlus/EPPlus.csproj | 22 +++++++++-------- 6 files changed, 58 insertions(+), 25 deletions(-) diff --git a/appveyor8.yml b/appveyor8.yml index 01b2b79b32..efe878ca0a 100644 --- a/appveyor8.yml +++ b/appveyor8.yml @@ -1,4 +1,4 @@ -version: 8.3.1.{build} +version: 8.4.0.{build} branches: only: - develop8 @@ -6,15 +6,15 @@ configuration: release image: Visual Studio 2022 init: - ps: >- - Update-AppveyorBuild -Version "8.3.1.$env:appveyor_build_number-$(Get-Date -format yyyyMMdd)-$env:appveyor_repo_branch" + Update-AppveyorBuild -Version "8.4.0.$env:appveyor_build_number-$(Get-Date -format yyyyMMdd)-$env:appveyor_repo_branch" - Write-Host "8.3.1.$env:appveyor_build_number-$(Get-Date -format yyyyMMdd)-$env:appveyor_repo_branch" + Write-Host "8.4.0.$env:appveyor_build_number-$(Get-Date -format yyyyMMdd)-$env:appveyor_repo_branch" dotnet_csproj: patch: true file: '**\*.csproj' version: '{version}' - assembly_version: 8.3.1.{build} - file_version: 8.3.1.{build} + assembly_version: 8.4.0.{build} + file_version: 8.4.0.{build} nuget: project_feed: true before_build: diff --git a/docs/articles/fixedissues.md b/docs/articles/fixedissues.md index e6489286e8..4df8ea369f 100644 --- a/docs/articles/fixedissues.md +++ b/docs/articles/fixedissues.md @@ -1,4 +1,28 @@ # Features / Fixed issues - EPPlus 8 +## Version 8.4.0 +### Features +* Added targeting framework .NET 10. +Fixed issues +* Fixed an issue where the DATEDIF function returned incorrect results for the number of months. +* Fixed an issue where EPPlus incorrectly evaluated the expression TRUE=1 as TRUE instead of FALSE. +* Resolved various issues in CEILING, ISOCEILING, CEILING.PRECISE, CEILING.MATH and FLOOR, FLOOR.PRECISE, FLOOR.MATH functions, especially when handling negative multiples. + The TIME function was previously limited to the range 00:00:00–23:59:59. It now behaves similar to Excel, supporting overflow and negative values. +* Fixed an issue where the TIME function did not handle array input correctly. +* Chart style manager resetted the color cycling of series, when using multiple chart types or secondary axis. +* Direct input of errors like #DIV/0, #NAME?, #NULL! or #GETTING_DATA was not supported in formulas and arrays. +* ISBLANK("") incorrectly returned true. +* ERROR.TYPE returned a #VALUE! error when supplying a #DIV/0! error. +* INDIRECT("") now returns a #REF! error. +* CONCATENATE(TRUE,FALSE) now returns the bool-strings in upper case, as Excel. +* REPT("ab",-1) now returns a #VALUE error. +* Fixed several issues with the MOD function and negative arguments. +* POWER(0,0) now returns a #NUM! error. +* Added support for preserving conditional formatting in pivot tables placed in the element. +* The ISNUMBER now returns false on Boolean values. +* The CHOOSE function incorrectly returned error (i.e. #DIV/0!), if supplies as conditional arguments. +* The UNICHAR function did return the correct character. +* The TEXT function failed, if a null value was supplied as format argument. + ## Version 8.3.1 * Using an array as denominator when first value is 0 returns a single ´#DIV0!´ error. * The ´FILTER´ function did not work correctly when filtering on columns. diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 3010114731..04f5131df9 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -20,6 +20,10 @@ Core;NET90 + + Core;NET100 + + NET481;NETFULL diff --git a/src/EPPlus.Interfaces/EPPlus.Interfaces.csproj b/src/EPPlus.Interfaces/EPPlus.Interfaces.csproj index af233d4b33..2d1ad82d58 100644 --- a/src/EPPlus.Interfaces/EPPlus.Interfaces.csproj +++ b/src/EPPlus.Interfaces/EPPlus.Interfaces.csproj @@ -1,9 +1,9 @@  - net9.0;net8.0;netstandard2.1;netstandard2.0;net462;net35 - 8.1.0.0 - 8.1.0.0 - 8.1.0 + net10.0;net9.0;net8.0;netstandard2.1;netstandard2.0;net462;net35 + 8.4.0.0 + 8.4.0.0 + 8.4.0 true license.md git diff --git a/src/EPPlus.System.Drawing/EPPlus.System.Drawing.csproj b/src/EPPlus.System.Drawing/EPPlus.System.Drawing.csproj index 1a958277dd..a9361e06e8 100644 --- a/src/EPPlus.System.Drawing/EPPlus.System.Drawing.csproj +++ b/src/EPPlus.System.Drawing/EPPlus.System.Drawing.csproj @@ -1,10 +1,10 @@  - net9.0;net8.0;netstandard2.1;netstandard2.0;net462;net35 - 8.1.0.0 - 8.1.0.0 - 8.1.0 + net10.0;net9.0;net8.0;netstandard2.1;netstandard2.0;net462;net35 + 8.4.0.0 + 8.4.0.0 + 8.4.0 true license.md true @@ -19,12 +19,15 @@ - + - + + + + True diff --git a/src/EPPlus/EPPlus.csproj b/src/EPPlus/EPPlus.csproj index 33c8aa1aba..6262f78b03 100644 --- a/src/EPPlus/EPPlus.csproj +++ b/src/EPPlus/EPPlus.csproj @@ -1,9 +1,9 @@  - net8.0;net9.0;netstandard2.1;netstandard2.0;net462;net35 - 8.3.1.0 - 8.3.1.0 - 8.3.1 + net8.0;net9.0;net10.0;netstandard2.1;netstandard2.0;net462;net35 + 8.4.0.0 + 8.4.0.0 + 8.4.0 true https://epplussoftware.com EPPlus Software AB @@ -18,7 +18,7 @@ readme.md EPPlus Software AB - EPPlus 8.3.1 + EPPlus 8.4.0 IMPORTANT NOTICE! From version 5 EPPlus changes the license model using a dual license, Polyform Non Commercial / Commercial license. @@ -26,9 +26,13 @@ Commercial licenses can be purchased from https://epplussoftware.com This applies to EPPlus version 5 and later. Earlier versions are still licensed LGPL. - ## Version 8.3.1 + ## Version 8.4.0 + * Added target framework .NET 10. Minor bug fixes. See https://epplussoftware.com/Developers/MinorFeaturesAndIssues - + + ## Version 8.3.1 + Minor bug fixes. + ## Version 8.3.0 * Support for adding, updating and removing external connections and query tables. See https://github.com/EPPlusSoftware/EPPlus/wiki/External-Connections-and-Query-Tables * Support for adding pivot tables with external connections as data source. @@ -541,6 +545,7 @@ A list of fixed issues can be found here https://epplussoftware.com/docs/7.0/articles/fixedissues.html Version history + 8.4.0 20251212 Updated target frameworks. Minor bug fixes. 8.3.1 20251128 Minor bug fixes. 8.3.0 20251120 Connections and query tables support. Minor features and bug fixes. See https://epplussoftware.com/Developers/MinorFeaturesAndIssues 8.2.1 20251012 Minor bug fixes. @@ -744,8 +749,6 @@ - - From 7459310a5af70378011a658da0ad33e494ecb0e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4llman?= Date: Fri, 12 Dec 2025 10:50:14 +0100 Subject: [PATCH 2/6] Added vs2026 to appveyor config. --- appveyor8.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor8.yml b/appveyor8.yml index efe878ca0a..5d0108e162 100644 --- a/appveyor8.yml +++ b/appveyor8.yml @@ -3,7 +3,7 @@ branches: only: - develop8 configuration: release -image: Visual Studio 2022 +image: Visual Studio 2026 init: - ps: >- Update-AppveyorBuild -Version "8.4.0.$env:appveyor_build_number-$(Get-Date -format yyyyMMdd)-$env:appveyor_repo_branch" From e2a027bea03e77e586d26d78cbb914976067b3b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4llman?= Date: Fri, 12 Dec 2025 10:56:58 +0100 Subject: [PATCH 3/6] Added .NET 10 install in appveyor.yml, as vs2026 is not available. --- appveyor8.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/appveyor8.yml b/appveyor8.yml index 5d0108e162..e5b85ab2c5 100644 --- a/appveyor8.yml +++ b/appveyor8.yml @@ -3,7 +3,13 @@ branches: only: - develop8 configuration: release -image: Visual Studio 2026 +image: Visual Studio 2022 +install: +- ps: | + Invoke-WebRequest -Uri 'https://dot.net/v1/dotnet-install.ps1' -UseBasicParsing -OutFile "$env:temp\dotnet-install.ps1" + & $env:temp\dotnet-install.ps1 -Architecture x64 -Version '10.0.100' -InstallDir "$env:ProgramFiles\dotnet" +before_build: + - cmd: dotnet --version init: - ps: >- Update-AppveyorBuild -Version "8.4.0.$env:appveyor_build_number-$(Get-Date -format yyyyMMdd)-$env:appveyor_repo_branch" From aac341ecdf89c939cfad845db05d274caf4ab5a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4llman?= Date: Fri, 12 Dec 2025 11:01:46 +0100 Subject: [PATCH 4/6] Fixed appveyor.yml. --- appveyor8.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/appveyor8.yml b/appveyor8.yml index e5b85ab2c5..2bf95d0ac0 100644 --- a/appveyor8.yml +++ b/appveyor8.yml @@ -8,8 +8,6 @@ install: - ps: | Invoke-WebRequest -Uri 'https://dot.net/v1/dotnet-install.ps1' -UseBasicParsing -OutFile "$env:temp\dotnet-install.ps1" & $env:temp\dotnet-install.ps1 -Architecture x64 -Version '10.0.100' -InstallDir "$env:ProgramFiles\dotnet" -before_build: - - cmd: dotnet --version init: - ps: >- Update-AppveyorBuild -Version "8.4.0.$env:appveyor_build_number-$(Get-Date -format yyyyMMdd)-$env:appveyor_repo_branch" From a70f3413b2abfe7e5ed659bcdd8090b23f1b6dea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4llman?= Date: Fri, 12 Dec 2025 12:30:18 +0100 Subject: [PATCH 5/6] EPPlus version 8.4.0 --- docs/articles/fixedissues.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/articles/fixedissues.md b/docs/articles/fixedissues.md index 4df8ea369f..f74efa9a1f 100644 --- a/docs/articles/fixedissues.md +++ b/docs/articles/fixedissues.md @@ -2,14 +2,14 @@ ## Version 8.4.0 ### Features * Added targeting framework .NET 10. -Fixed issues +### Fixed issues * Fixed an issue where the DATEDIF function returned incorrect results for the number of months. * Fixed an issue where EPPlus incorrectly evaluated the expression TRUE=1 as TRUE instead of FALSE. * Resolved various issues in CEILING, ISOCEILING, CEILING.PRECISE, CEILING.MATH and FLOOR, FLOOR.PRECISE, FLOOR.MATH functions, especially when handling negative multiples. The TIME function was previously limited to the range 00:00:00–23:59:59. It now behaves similar to Excel, supporting overflow and negative values. * Fixed an issue where the TIME function did not handle array input correctly. -* Chart style manager resetted the color cycling of series, when using multiple chart types or secondary axis. -* Direct input of errors like #DIV/0, #NAME?, #NULL! or #GETTING_DATA was not supported in formulas and arrays. +* Chart Style Manager reset the series color cycle when multiple chart types or a secondary axis were used. +* Direct input of errors like #DIV/0!, #NAME?, #NULL! or #GETTING_DATA was not supported in formulas and arrays. * ISBLANK("") incorrectly returned true. * ERROR.TYPE returned a #VALUE! error when supplying a #DIV/0! error. * INDIRECT("") now returns a #REF! error. @@ -22,6 +22,9 @@ Fixed issues * The CHOOSE function incorrectly returned error (i.e. #DIV/0!), if supplies as conditional arguments. * The UNICHAR function did return the correct character. * The TEXT function failed, if a null value was supplied as format argument. +* VLOOKUP could fail to find an item in the cell if the first row was the header. Excel ignores header values in the binary search. +* `ExcelRangeBase.DimensionByValue` returned the wrong range in rare cases. +* `ExcelRangeBase.Richtext` caused a null `NullReferenceException` when it hade been disposed. ## Version 8.3.1 * Using an array as denominator when first value is 0 returns a single ´#DIV0!´ error. From d18e48f925c251066e7d2380eb355fc992c90d91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20K=C3=A4llman?= Date: Fri, 12 Dec 2025 13:03:40 +0100 Subject: [PATCH 6/6] Updated version date. --- src/EPPlus/EPPlusLicense.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/EPPlus/EPPlusLicense.cs b/src/EPPlus/EPPlusLicense.cs index 885e9feb06..e7cb163440 100644 --- a/src/EPPlus/EPPlusLicense.cs +++ b/src/EPPlus/EPPlusLicense.cs @@ -16,7 +16,7 @@ public class EPPlusLicense { private static ExcelPackageConfiguration _configuration = new ExcelPackageConfiguration(); static bool _licenseSet = false; - internal const string _versionDate = "2025-08-15"; + internal const string _versionDate = "2025-12-12"; /// /// The license key used for a commercial license. ///