EPPlus 5

Features and technical overview

Minor features and fixed issues

Minor features/Fixed issues - EPPlus 5.0

Version 5.0.3

Minor new features
  • Chart series will from version 5 handles both addresses and arrays. Arrays are handled in the StringLiteralsX, NumberLiteralsX and NumberLiteralsY arrays when a series is set to an Array ( for example {1,2,3} ).
  • Add support for BringToFront and SendToBack methods on the Drawings Collection to handle drawing overlap.
  • Add TopLeftCell to ExcelWorksheetView
  • Enabled Style.TextRotation=255 for Vertical Text in cells. Added new method ExcelStyle.SetTextVertical.
  • Add Pivot property to conditional formatting, to indicate a pivot source.
  • RichText on drawings can now handle paragraphs to get line breaks. Add method has new parameter NewParagraph.
  • Table source overload to PivotTable.Add method
  • 13 new functions supported in the Formula calculation engine: IFS, SWITCH, WORKDAY.INTL, TYPE, ODD, EVEN, DAYS, NUMBERVALUE, UNICHAR, UNICODE, CLEAN, TRIM and CONCAT
General fixes
  • Cellstore has been rewritten. This should fix some issues with inserting and deleting rows and columns. Also fixes a sorting issue.
  • Fixed SchemaNodeOrder in many drawing classes.
  • Handling of circular references has been redesigned.
Fixed issues
  • Worksheet.Hidden does not always hide the worksheet.
  • Drawings will now move and size when inserting/deleting rows/columns depending on the ExcelDrawing.EditAs property.
  • Adding a Table caused an exception if a chart sheet existed in the workbook.
  • Adding a PivotTable caused an exception if a chart sheet existed in the workbook.
  • Custom document properties are case insensitive.
  • Sheet with rich text inline string can not handle whitespaces only.
  • StackOverflowException when calling Clear on a comma separated Range.
  • ExcelWorksheet.Copy corrupts package if a relationship to drawing.xml with no drawings exists.
  • Copying formulas in ranges can lead to invalid #REF! for fixed addresses.
  • Table column names are validated for duplicates on a non-encoded value
  • Packages with a prefix for the main xml namespace for a worksheet gets corrupted.
  • ExcelRangeBase.AutofitColumns() unhides hidden columns
  • The Normal style does not work correctly if not named Normal. The Normal style is now found using the first occurrance of the BuildInId = 0 criteria.
  • URI for the sharedstrings and the styles part were not fetched by RelationshipType when a package was loaded.
  • Setting a cell value to a char datatype will result i "0" when saved
  • Structs in a cell value can result in a null value when converted to string on save
  • Conditional formatting styles crashed when copying a worksheet from another package.
  • EPPlus crashes on load if a workbook or worksheet has more than one defined name with the same name.
  • Row styles were not copied correctly copied when inserting rows
  • Overwriting a shared formulas first cell causes a crash.
  • Workbooks with Empty series for Scatter- and Doughnut- charts crashes on load
  • FileStream for compound documents are not closed.
  • If CustomSheetView element contained row/column breaks, the package could not be loaded.
  • Pivot tables crashed if SubTotalFunction were set to eSubTotalFunctions.None and there were no values in the source data.
  • Data validations of type list don't support formula references to other worksheets.
  • Formula calc: Does not remove double-negation from formulatokens.
  • Formula calc: Value matcher now supports comparisons between DateTime and double. CompileResultFactory includes float type in DataType.Decimal.
  • Formula calc: MultipleRangeCriterasFunction.GetMatchIndexes() looped through max number of rows when a range argument was an entire column now stops as Dimension.End.Row. Fixed a bug in CountIfs function which wasn't working properly with multiple criteria's
  • Formula calc: Support Instance_num parameter of SUBSTITUTE function.

Version 5.0.4

Fixed issues
  • Datavalidation on lists failed if the formula was an defined name.
  • Merged cells got cleared if a value was set over multiple cells
  • RichText causes xml "corruption" if a blank string or null was added to the collection.

Version 5.1.0

Features
  • Insert and Delete method added to ExcelRange. Cells will be shifted depending on the argument supplied.
  • AddRow, InsertRow and DeleteRow added to ExcelTable.
  • Add, Insert and Delete added To ExcelTableColumnCollection.
  • Added support for new functions:
    • FACTDOUBLE
    • COMBIN
    • COMBINA
    • SEC
    • SECH
    • CSC
    • CSCH
    • COT
    • COTH
    • RADIANS
    • ACOT
    • ACOTH
    • ROMAN
    • GCD
    • LCM
    • FLOOR.PRECISE
    • CEILING.PRECISE
    • MROUND
    • ISO.CEILING
    • FLOOR.MATH
    • CEILING.MATH
    • SUMXMY2
    • SUMX2MY2
    • SUMX2PY2
    • SERIESSUM
Fixed issues
  • Images added with AddImage(Image) did not use the oneCellAnchore element.
  • ExcelPackage.CopyStreamAsync did not fully use async (Flush-->FlushAsync), causing an exception.
  • VBA module names restricts some allowed characters.
  • Shared Formulas are not handled correctly when an address argument reference another worksheet.
  • Adding a Sparklinegroup does not add it to the SparklineGroups collection.
  • Files saved in LibreOffice did not handle boolean properties correctly for rows and columns, (for example the hidden property).
  • Data validation - List validation did not set the ShowErrorMessage when an address referenced another worksheet.
  • Addresses with style: 'sheet'!A1:'sheet'!A2 was not handled correctly.

Version 5.1.1

Features
  • Added method RemoveVBAProject to ExcelWorkbook.
Fixed issues
  • CalculatedColumnFormula property was set to the range on save, overwriting any cell value that was changed in the range of the formula.
  • VbaProject. Remove didn't fully remove the VBA project.
  • LoadFromCollection didn't work will List<object>.
  • Group shapes containg shapes with the same name throw exception.
  • Worksheets with a large amount of columns had bad performance on save.

Version 5.1.2

Features
  • Added ClearFormulas and ClearFormulaValues to Range, Worksheet and Workbook. ClearFormulas removes all formulas, ClearFormulaValues removes all previously calculated/cached values.
  • Added support for 19 new engineering functions:
    • CONVERT
    • DELTA
    • BIN2DEC
    • BIN2HEX
    • BIN2OCT
    • DEC2BIN
    • DEC2HEX
    • DEC2OCT
    • HEX2BIN
    • HEX2DEC
    • HEX2OCT
    • OCT2BIN
    • OCT2DEC
    • OCT2HEX
    • BITLSHIFT
    • BITAND
    • BITOR
    • BITRSHIFT
    • BITXOR
Fixed issues
  • Delete method adjusted row offset on drawings incorrectly.
  • When copying a worksheet with images to an other package did not work correctly in some cases.
  • Datavalidation addresses did not update correctly when deleting columns.
  • Opening a packages saved with System.IO.Compression caused a corrupted package on save.
  • Added a check to the ExcelPackage Construcors if the FileInfo exists and is zero-byte. Supplying a zero-byte file will now create a new package. Supplying a zero-byte template will throw an exception.
  • Fixed scaling for pictures. Changed data type for internal pixel variables from int to double.
  • Delete/Insert din't handle comma separated addresses in data validation / conditional formatting
  • ColumnMin and ColumnMax were not correctly updated when one or more columns were deleted