Correct name for newer functions (post 2013) is not what is seen in the GUI (e.g. correct name for CONCAT
is _xlfn.CONCAT
). That is rather obscure fact not known to most developers. The formula setters (e.g. IXLCell.FormulaA1
) now automatically fix function names, so it is stored correctly in the file.
using var wb = new XLWorkbook(); var ws = wb.AddWorksheet(); // Originally required "_xlfn.CONCAT(\"hello\", \" world!\")"; ws.Cell("A1").FormulaA1 = "CONCAT(\"hello\", \" world!\")";Sorting updates references
In many cases, the sorted area has a column with references. The formula often references another row. Pre-0.105, the references in the formulas weren't updated correctly.
using var wb = new XLWorkbook(); var ws = wb.AddWorksheet(); ws.Cell("A1").Value = 4; ws.Cell("B1").FormulaA1 = "A1+1"; ws.Cell("A2").Value = 2; ws.Cell("B2").FormulaA1 = "A2+1"; ws.Cell("A3").Value = 1; ws.Cell("B3").FormulaA1 = "A3+1"; ws.Range("A1:B3").Sort(1, XLSortOrder.Ascending);Reimplementation/refactoring of old function infrastructure
Basically all implemented functions should be more faithful to how Excel behaves and evaluation of functions should be faster. implemented functions should be "complete" in sense that they correctly work for various arguments (e.g. various forms of ROMAN
or pattern search in SUMIFS
).
The functions (before refactoring) had serious problems with ranges, errors or type coercion or structured references. The original parser back then didn't even parse literal arrays ({1,2,3;4,5,6}
). Parser and other things were updated, but because there was ~180 functions, original implementation was kept and functions were functions were reused through an adapter. Except the adapter never worked right and there were some other serious problems.
Full Changelog: 0.104.0-rc1...0.105.0
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4