summaryrefslogtreecommitdiff
path: root/sc/source/filter/oox
diff options
context:
space:
mode:
authorWinfried Donkers <winfrieddonkers@libreoffice.org>2023-06-28 16:13:45 +0200
committerBalazs Varga <balazs.varga.extern@allotropia.de>2024-01-31 09:14:19 +0100
commitf7039822c7ad3987326e1c20ea4a745c158f9682 (patch)
treeda529400e058b0a429cb0b04d23dd327608b11e6 /sc/source/filter/oox
parent8cccfc82a3038bc28864ae9e94418a141b4aa545 (diff)
tdf#127293 Add Excel2021 function XLOOKUP to Calc
https://issues.oasis-open.org/browse/OFFICE-4154 What is working already: xlookup with normal forward, backward search in columns/rows. Binary search in rows with real binary search algorithm, in columns only works with linear search yet. Linear forward backward wildcard/regex search in columns/rows. Looking for the first smaller or greater value with linear and binary search ALso all the combination of all these options. Except XLOOKUP not supperted wildcard/regex search with binary search. TODO in next patches: - add the binary search option for searching in columns. - Evaluate Formula calculation not working in general. Co-authored-by: Balazs Varga <balazs.varga.extern@allotropia.de> Change-Id: I15fd4479b63ec13b093d269760d1bbb5957553e8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131905 Tested-by: Jenkins Tested-by: Gabor Kelemen <gabor.kelemen.extern@allotropia.de> Reviewed-by: Balazs Varga <balazs.varga.extern@allotropia.de>
Diffstat (limited to 'sc/source/filter/oox')
-rw-r--r--sc/source/filter/oox/formulabase.cxx15
1 files changed, 15 insertions, 0 deletions
diff --git a/sc/source/filter/oox/formulabase.cxx b/sc/source/filter/oox/formulabase.cxx
index 464d30d9d2d8..6ee06ff6b89b 100644
--- a/sc/source/filter/oox/formulabase.cxx
+++ b/sc/source/filter/oox/formulabase.cxx
@@ -866,6 +866,20 @@ const FunctionData saFuncTable2016[] =
};
+
+/** Functions new in Excel 2021.
+
+
+ @See sc/source/filter/excel/xlformula.cxx saFuncTable_2021
+ */
+/* FIXME: BIFF?? function identifiers available? Where to obtain? */
+const FunctionData saFuncTable2021[] =
+{
+ { "COM.MICROSOFT.XLOOKUP", "XLOOKUP", NOID, NOID, 3, 6, V, { VR, VA, VR }, FuncFlags::MACROCALL_NEW }
+};
+
+
+
/** Functions defined by OpenFormula, but not supported by Calc or by Excel. */
const FunctionData saFuncTableOdf[] =
{
@@ -1008,6 +1022,7 @@ FunctionProviderImpl::FunctionProviderImpl( bool bImportFilter )
initFuncs(saFuncTable2010 , std::end(saFuncTable2010) , bImportFilter);
initFuncs(saFuncTable2013 , std::end(saFuncTable2013) , bImportFilter);
initFuncs(saFuncTable2016 , std::end(saFuncTable2016) , bImportFilter);
+ initFuncs(saFuncTable2021 , std::end(saFuncTable2021 ), bImportFilter);
initFuncs(saFuncTableOdf , std::end(saFuncTableOdf) , bImportFilter);
initFuncs(saFuncTableOOoLO, std::end(saFuncTableOOoLO), bImportFilter);
}