Skip to content

Commit 8e980d3

Browse files
committed
EPPlus version 8.0.0-beta
1 parent 338ecf3 commit 8e980d3

File tree

6 files changed

+88
-104
lines changed

6 files changed

+88
-104
lines changed

CONTRIBUTING.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Contributing to EPPlus 5
1+
# Contributing to EPPlus 8
22

33
## Got a Question or Problem?
44
If you have questions about how to use EPPlus 5 and use the community license, please direct these to Stack Overflow.

Readme.md

+31-42
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,53 @@
11
![Nuget](https://img.shields.io/nuget/v/epplus)
22
[![Download EPPlus from nuget](https://img.shields.io/nuget/dt/epplus?label=Nuget%20downloads)](https://www.nuget.org/packages/EPPlus/)
3-
[![Build status](https://ci.appveyor.com/api/projects/status/fn3lqpxfjff3jq0v?svg=true)](https://ci.appveyor.com/project/EPPlusSoftware/epplus7)
4-
# EPPlus 7
3+
[![Build status](https://ci.appveyor.com/api/projects/status/fn3lqpxfjff3jq0v?svg=true)](https://ci.appveyor.com/project/EPPlusSoftware/epplus8)
4+
# EPPlus 8
55

6-
## Announcement: new license model from version 5
7-
EPPlus has from this new major version changed license from LGPL to [Polyform Noncommercial 1.0.0](https://polyformproject.org/licenses/noncommercial/1.0.0/).
6+
## License
7+
EPPlus 8 has a dual license model with a community license for noncommercial use: [Polyform Noncommercial 1.0.0](https://polyformproject.org/licenses/noncommercial/1.0.0/).
88

9-
With the new license EPPlus is still free to use in some cases, but will require a commercial license to be used in a commercial business.
10-
11-
This is explained in more detail [here](https://www.epplussoftware.com/Home/LgplToPolyform).
9+
With this license EPPlus is free to use for personal or noncommercial use, but will require a commercial license to be used in a commercial business.
1210

1311
Commercial licenses, which includes support, can be purchased at (https://www.epplussoftware.com/).
1412

15-
The source code of EPPlus has moved to a [new github repository](https://github.com/EPPlusSoftware/EPPlus)
13+
The source code for EPPlus is available at [EPPlus Software's github repository](https://github.com/EPPlusSoftware/EPPlus)
14+
15+
## License parameter must be set
16+
Before using EPPlus 8, you must specify the license to use. This is done via the License property of the ExcelPackage class
17+
18+
For commercial use, you use the License.SetCommercial(string), with your license key as argument.
19+
Your license key is available on your license, under the section "My Licenses" on our website.
1620

17-
## LicenseContext parameter must be set
18-
With the license change EPPlus has a new parameter that needs to be configured. If the LicenseContext is not set, EPPlus will throw a LicenseException (only in debug mode).
21+
For noncommercial use, you set the License.SetNonCommercialOrganization(string) or License.SetNonCommercialPersonal(string) with the name as argument.
22+
Noncommercial use will reserve the Comment and Tag field of the package for license information and add a license file within the package.
1923

20-
This is a simple configuration that can be set in a few alternative ways:
24+
You can also configure these settings in the configuration files or in an environment varialble:
2125

2226
### 1. Via code
2327
```csharp
2428
// If you are a commercial business and have
2529
// purchased commercial licenses use the static property
2630
// LicenseContext of the ExcelPackage class :
27-
ExcelPackage.LicenseContext = LicenseContext.Commercial;
31+
ExcelPackage.License.SetCommercial("<Your License Key here>");
2832

2933
// If you use EPPlus in a noncommercial context
3034
// according to the Polyform Noncommercial license:
31-
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
35+
ExcelPackage.License.SetNonCommercialPersonal("<Your Name>");
36+
//or..
37+
ExcelPackage.License.SetNonCommercialOrganization("<Your Noncommercial Organization>");
3238

3339
using(var package = new ExcelPackage(new FileInfo("MyWorkbook.xlsx")))
3440
{
3541

3642
}
3743
```
3844
### 2. Via appSettings.json
39-
```jsonc
45+
```json
4046
{
4147
{
4248
"EPPlus": {
4349
"ExcelPackage": {
44-
"LicenseContext": "Commercial" //The license context used
50+
"License": "Commercial:<Your License Key here>" //The license context used
4551
}
4652
}
4753
}
@@ -51,36 +57,19 @@ using(var package = new ExcelPackage(new FileInfo("MyWorkbook.xlsx")))
5157
```xml
5258
<appSettings>
5359
<!--The license context used-->
54-
<add key="EPPlus:ExcelPackage.LicenseContext" value="NonCommercial" />
60+
<add key="EPPlus:ExcelPackage.License" value="NonCommercialPersonal:Your Name" /> //..or use "NonCommercialOrganization:Your Organizations name"
5561
</appSettings>
5662
```
5763
### 4. Set the environment variable 'EPPlusLicenseContext'
58-
This might be the easiest way of configuring this. Just as above, set the variable to Commercial or NonCommercial depending on your usage.
59-
60-
**Important!** The environment variable should be set at the user or process level.
61-
62-
## New features in EPPlus 7
63-
* Calculation engine update to support array formulas. https://epplussoftware.com/en/Developers/EPPlus7
64-
* Support for calculating legacy / dynamic array formulas.
65-
* Support for intersect operator.
66-
* Support for implicit intersection.
67-
* Support for array parameters in functions.
68-
* Better support for using the colon operator with functions.
69-
* Better handling of circular references
70-
* 90 new functions
71-
* Faster optimized calculation engine with configurable expression caching.
72-
* Breaking changes: Updated calculation engine, See [Breaking Changes in EPPlus 7](https://github.com/EPPlusSoftware/EPPlus/wiki/Breaking-Changes-in-EPPlus-7) for more information.
73-
* Conditional Formatting improvements
74-
* Improved performance, xml is now read and written on load and save.
75-
* Cross worksheet support formula support.
76-
* Extended styling options for color scales, data bars and icon sets.
64+
This might be the easiest way of configuring this. Just as above, set the variable EPPlusLicense.
7765

66+
## New features in EPPlus 8
67+
* Support for OLE objects (Linked or Embedded files).
68+
* Support for digital signing workbooks and signature lines.
69+
* In-cell pictures / support for the IMAGE function.
70+
* Sensitivity Label API to integrate with MIP (Microsoft Information Protection SDK).
71+
* Many minor features and bug fixes.
72+
*
7873
## Breaking Changes
79-
See https://github.com/EPPlusSoftware/EPPlus/wiki/Breaking-Changes-in-EPPlus-7
74+
See https://github.com/EPPlusSoftware/EPPlus/wiki/Breaking-Changes-in-EPPlus-8
8075

81-
## Improved documentation
82-
EPPlus 7 has a new web sample site available here: (https://samples.epplussoftware.com/) , Source code is available here: [EPPlus.WebSamples](https://github.com/EPPlusSoftware/EPPlus.WebSamples)
83-
There is also a new sample project for four different docker images, [EPPlus.DockerSample](https://github.com/EPPlusSoftware/EPPlus.DockerSample).
84-
EPPlus also has two separate sample projects for [C#](https://github.com/EPPlusSoftware/EPPlus.Samples.CSharp) and [Visual Basic](https://github.com/EPPlusSoftware/EPPlus.Samples.VB/) respectively.
85-
There is also an updated [developer wiki](https://github.com/EPPlusSoftware/EPPlus/wiki).
86-
The work with improving the documentation will continue, feedback is highly appreciated!

docs/articles/fixedissues.md

+17-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,23 @@
11
# Features / Fixed issues - EPPlus 8
22
## Version 8.0.0
33
### Features
4-
* Added a new rounding that is more true to Excels precision. You can swtich between .Net and Excel precision with ParsingContext.
4+
* EPPlus 8 will require a license key for commercial licenses.
5+
* Support for OLE objects (Linked or Embedded files).
6+
* Support for digital signing workbooks and signature lines.
7+
* In-cell pictures / support for the IMAGE function.
8+
* Sensitivity Label API to integrate with MIP (Microsoft Information Protection SDK).
9+
10+
### Minor features
11+
* Autofit columns optimaiztion.
12+
* Range Copy now supports fill.
13+
* EPPlus now rounds decimal numbers more true to Excels precision.
14+
* Added ExcelRange.IsEmpty method.
15+
* Shape adjustments points support.
16+
* ExcelRangeBase.BorderAround now override borders for adjacent cells.
17+
* InsertRange now returnes the new inserted range.
18+
* In-cell checkboxes now renders in the HTML export.
19+
* Improved API for Tables to access data via column names.
20+
* Added a new rounding that is more true to Excels precision. You can switch between .Net and Excel precision with ParsingContext.
521
* Added IsEmpty() method on ExcelRange. Can test for value, comments, threaded comments and formulas.
622
* Override borders in Adjacent cells in BorderAround method.
723

src/EPPlus/EPPlus.csproj

+4-2
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,12 @@
2626
Commercial licenses can be purchased from https://epplussoftware.com
2727
This applies to EPPlus version 5 and later. Earlier versions are still licensed LGPL.
2828

29-
## Version 8.0.0
30-
* EPPlus 8 will require a license key for commercial licenses.
29+
## Version 8.0.0-beta 1
30+
* EPPlus 8 will require a license key for commercial licenses.
3131
* Support for OLE objects (Linked or Embedded files).
3232
* Support for digital signing workbooks and signature lines.
3333
* In-cell pictures / support for the IMAGE function.
34+
* Sensitivity Label API to integrate with MIP (Microsoft Information Protection SDK).
3435

3536
Minor features:
3637
* Autofit columns optimaiztion.
@@ -471,6 +472,7 @@
471472
A list of fixed issues can be found here https://epplussoftware.com/docs/7.0/articles/fixedissues.html
472473

473474
Version history
475+
8.0.0-beta 20250214 Digital Signatures, Ole objects, in-cell pictures. https://epplussoftware.com/en/Developers/EPPlus8
474476
7.6.0 20250206 Updated target frameworks. Minor features and bug fixes.
475477
7.5.3 20250116 Minor features and bug fixes.
476478
7.5.2 20241209 Minor features and bug fixes.

src/EPPlus/readme.md

+6-3
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,13 @@ using(var package = new ExcelPackage(new FileInfo("MyWorkbook.xlsx")))
6060
### 4. Set the environment variable 'EPPlusLicenseContext'
6161
This might be the easiest way of configuring this. Just as above, set the variable EPPlusLicense.
6262

63-
64-
6563
## New features in EPPlus 8
66-
64+
* Support for OLE objects (Linked or Embedded files).
65+
* Support for digital signing workbooks and signature lines.
66+
* In-cell pictures / support for the IMAGE function.
67+
* Sensitivity Label API to integrate with MIP (Microsoft Information Protection SDK).
68+
* Many minor features and bug fixes.
69+
*
6770
## Breaking Changes
6871
See https://github.com/EPPlusSoftware/EPPlus/wiki/Breaking-Changes-in-EPPlus-8
6972

src/EPPlus/readme.txt

+29-55
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,37 @@
11
# EPPlus 8
22

3-
## Announcement: new license model from version 5
4-
EPPlus has from this new major version changed license from LGPL to [Polyform Noncommercial 1.0.0](https://polyformproject.org/licenses/noncommercial/1.0.0/).
3+
## License
4+
EPPlus 8 has a dual license model with a community license for noncommercial use: [Polyform Noncommercial 1.0.0](https://polyformproject.org/licenses/noncommercial/1.0.0/).
55

6-
With the new license EPPlus is still free to use in some cases, but will require a commercial license to be used in a commercial business.
7-
8-
This is explained in more detail [here](https://www.epplussoftware.com/Home/LgplToPolyform).
6+
With this license EPPlus is free to use for personal or noncommercial use, but will require a commercial license to be used in a commercial business.
97

108
Commercial licenses, which includes support, can be purchased at (https://www.epplussoftware.com/).
119

12-
The source code of EPPlus has moved to a [new github repository](https://github.com/EPPlusSoftware/EPPlus)
10+
The source code for EPPlus is available at [EPPlus Software's github repository](https://github.com/EPPlusSoftware/EPPlus)
11+
12+
## License parameter must be set
13+
Before using EPPlus 8, you must specify the license to use. This is done via the License property of the ExcelPackage class
14+
15+
For commercial use, you use the License.SetCommercial(string), with your license key as argument.
16+
Your license key is available on your license, under the section "My Licenses" on our website.
1317

14-
## LicenseContext parameter must be set
15-
With the license change EPPlus has a new parameter that needs to be configured. If the LicenseContext is not set, EPPlus will throw a LicenseException (only in debug mode).
18+
For noncommercial use, you set the License.SetNonCommercialOrganization(string) or License.SetNonCommercialPersonal(string) with the name as argument.
19+
Noncommercial use will reserve the Comment and Tag field of the package for license information and add a license file within the package.
1620

17-
This is a simple configuration that can be set in a few alternative ways:
21+
You can also configure these settings in the configuration files or in an environment varialble:
1822

1923
### 1. Via code
2024
```csharp
2125
// If you are a commercial business and have
2226
// purchased commercial licenses use the static property
2327
// LicenseContext of the ExcelPackage class :
24-
ExcelPackage.LicenseContext = LicenseContext.Commercial;
28+
ExcelPackage.License.SetCommercial("<Your License Key here>");
2529

2630
// If you use EPPlus in a noncommercial context
2731
// according to the Polyform Noncommercial license:
28-
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;
32+
ExcelPackage.License.SetNonCommercialPersonal("<Your Name>");
33+
//or..
34+
ExcelPackage.License.SetNonCommercialOrganization("<Your Noncommercial Organization>");
2935

3036
using(var package = new ExcelPackage(new FileInfo("MyWorkbook.xlsx")))
3137
{
@@ -38,7 +44,7 @@ using(var package = new ExcelPackage(new FileInfo("MyWorkbook.xlsx")))
3844
{
3945
"EPPlus": {
4046
"ExcelPackage": {
41-
"LicenseContext": "Commercial" //The license context used
47+
"License": "Commercial:<Your License Key here>" //The license context used
4248
}
4349
}
4450
}
@@ -48,51 +54,19 @@ using(var package = new ExcelPackage(new FileInfo("MyWorkbook.xlsx")))
4854
```xml
4955
<appSettings>
5056
<!--The license context used-->
51-
<add key="EPPlus:ExcelPackage.LicenseContext" value="NonCommercial" />
57+
<add key="EPPlus:ExcelPackage.License" value="NonCommercialPersonal:Your Name" /> //..or use "NonCommercialOrganization:Your Organizations name"
5258
</appSettings>
5359
```
5460
### 4. Set the environment variable 'EPPlusLicenseContext'
55-
This might be the easiest way of configuring this. Just as above, set the variable to Commercial or NonCommercial depending on your usage.
56-
57-
**Important!** The environment variable should be set at the user or process level.
58-
59-
## New features in EPPlus 7 preview 1
60-
* Calculation engine update to array formulas. https://github.com/EPPlusSoftware/EPPlus/wiki/EPPlus-7-Preview
61-
* Support for calculating legacy / dynamic array formulas.
62-
* Support for intersect operator.
63-
* Support for Implicit intersection.
64-
* Support for array parameters in functions.
65-
* Better support for using the colon operator with functions.
66-
* 21 new functions
67-
61+
This might be the easiest way of configuring this. Just as above, set the variable EPPlusLicense.
62+
63+
## New features in EPPlus 8
64+
* Support for OLE objects (Linked or Embedded files).
65+
* Support for digital signing workbooks and signature lines.
66+
* In-cell pictures / support for the IMAGE function.
67+
* Sensitivity Label API to integrate with MIP (Microsoft Information Protection SDK).
68+
* Many minor features and bug fixes.
69+
*
6870
## Breaking Changes
69-
The formula parser has changed significantly in EPPlus 7, requiring all custom functions that inherits from the `ExcelFunction` class to be reviewed.
70-
The `ExcelFunction` class now exposes new properties used to handle array results and condition behaviour.
71-
* `NamespacePrefix` - If the function requires a prefix when saved, for example "_xlfn." or "_xlfn._xlws."
72-
* `HasNormalArguments` a boolean indicating if the formula only has normal arguments. If false, the `GetParameterInfo` method must be implemented. Default is true.
73-
* `ReturnsReference` - If true the function can return a reference to a range. Use the `CreateAddressResult` to return the result with a reference. Returning a reference, will cause the dependency chain to check the address and will allow the colon operator to be used with the function.
74-
* `IsVolatile` - If the function returns different result when called with the same parameters. Default false.
75-
* `ArrayBehaviour` - If the function allows arrays as input in a parameter, resulting in an array output. Also see the `GetArrayBehaviourConfig` method.
76-
Methods
77-
* `CreateAddressResult` - Return the result with an range to a range.
78-
* `CreateDynamicArrayResult` - The result should be treated as a dynamic array.
79-
* `GetArrayBehaviourConfig` - Sets the index if the parameters that can be arrays. Also see the `ArrayBehaviour` property.
80-
81-
* The source code tokenizer now tokenize more detailed, tokenizing addresses.
82-
* The expression handling is totally rewritten and now uses reversed polish notation instead of group expressions.
83-
84-
85-
### Breaking Changes in version 6.1
86-
* All public references to System.Drawing.Common has been removed from EPPlus. See [Breaking Changes in EPPlus 6](https://github.com/EPPlusSoftware/EPPlus/wiki/Breaking-Changes-in-EPPlus-6).
87-
* Static class 'FontSize' has splitted width and heights into two dictionaries. FontSizes are lazy-loaded when needed.
88-
* ...and more, see https://epplussoftware.com/docs/6.0/articles/breakingchanges.html
89-
### Breaking Changes in version 5.
90-
* The default behavior for the Worksheet collection base in .NET Framework has changed from 1 to 0. This is the same default behavior as in .NET core today.
91-
* Pictures have changed the behavior as the oneCellAnchor tag is used instead of the twoCellAnchor tag with the editAs="oneCell".
71+
See https://github.com/EPPlusSoftware/EPPlus/wiki/Breaking-Changes-in-EPPlus-8
9272

93-
## Improved documentation
94-
EPPlus 6 has a new web sample site available here: (https://samples.epplussoftware.com/) , Source code is available here: [EPPlus.WebSamples](https://github.com/EPPlusSoftware/EPPlus.WebSamples)
95-
There is also a new sample project for four different docker images, [EPPlus.DockerSample](https://github.com/EPPlusSoftware/EPPlus.DockerSample)
96-
EPPlus also has two separate sample projects for [.NET Core](https://github.com/EPPlusSoftware/EPPlus.Sample.NetCore/tree/version/EPPlus6.0) and [.NET Framework](https://github.com/EPPlusSoftware/EPPlus.Sample.NetFramework/tree/version/EPPlus6.0) respectively.
97-
There is also an updated [developer wiki](https://github.com/EPPlusSoftware/EPPlus/wiki).
98-
The work with improving the documentation will continue, feedback is highly appreciated!

0 commit comments

Comments
 (0)