diff --git a/README.md b/README.md index 8dc388f..39c182f 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Lox365 is a LibreOffice extension that adds modern spreadsheet functions like XL ![Screenshot](image2.png) -## Install +## Install or update 1. Download the extension `Lox365.oxt` from [Releases](https://github.com/goosepirate/lox365/releases). 2. Start LibreOffice > Tools > Extension Manager > Add > Select the oxt file > restart LibreOffice. @@ -44,6 +44,10 @@ Here are what others are saying about this project: — u/timespreader +> Great work, goose! 😊 + +— Mike Saunders + > Really nice idea. — Behzat Yildirim @@ -62,7 +66,11 @@ Here are what others are saying about this project: — Marius Spix -## Other functions +> Pues muchísimas gracias. + +— Guille + +## Availability of other function These functions are not in LibreOffice and not provided by Lox365 but are available in the latest Excel: @@ -73,6 +81,10 @@ These functions are not in LibreOffice and not provided by Lox365 but are availa * TOROW * XMATCH +These functions are not in LibreOffice but are planned to be added to Calc: + +* XLOOKUP + These functions are already available in LibreOffice: * CONCAT @@ -94,9 +106,7 @@ Media https://blog.documentfoundation.org/blog/2022/09/23/lox365-extension-xlookup-and-more-for-libreoffice-calc/ -https://es.blog.documentfoundation.org/extension-lox365-xlookup-y-mas-para-libreoffice-calc/ - -https://blog.libreoffice.org.tr/2022/09/23/libreoffice-calc-icin-yeni-bir-eklenti-goosepirate/ +https://blog.documentfoundation.org/blog/2022/10/06/libreoffice-project-and-community-recap-september-2022/ https://www.reddit.com/r/libreoffice/comments/x98nqt/lox365_xlookup_for_libreoffice/ @@ -110,6 +120,16 @@ https://fosstodon.org/@libreoffice/109046849962893237 https://www.facebook.com/libreoffice.org/posts/pfbid07mXEodbV2i32W6JkbRYWdDoyw8sUkiw7cX8QdTLU357AhJKGr9QoH5zKeJUxArkzl +https://es.blog.documentfoundation.org/extension-lox365-xlookup-y-mas-para-libreoffice-calc/ (es) + +https://forest.watch.impress.co.jp/docs/news/1442776.html (jp) + +https://www.zaikei.co.jp/article/20220928/691186.html (jp) + +https://www.matsuura.com.br/2022/09/extensao-lox365-xlookup-e-mais-para.html (pt) + +https://blog.libreoffice.org.tr/2022/09/23/libreoffice-calc-icin-yeni-bir-eklenti-goosepirate/ (tr) + Development https://bugs.documentfoundation.org/show_bug.cgi?id=126573 @@ -118,14 +138,24 @@ https://bugs.documentfoundation.org/show_bug.cgi?id=127293 https://gerrit.libreoffice.org/c/core/+/131905 +https://flywire.github.io/lo-p/ + https://wiki.openoffice.org/wiki/Calc/Add-In/Python_How-To https://wiki.openoffice.org/wiki/Python/Python_Language_Binding +https://wiki.documentfoundation.org/Documentation/DevGuide/Spreadsheet_Documents + +https://help.libreoffice.org/latest/en-US/text/sbasic/python/main0000.html + +https://api.libreoffice.org/docs/idl/ref/namespaces.html + https://api.libreoffice.org/docs/idl/ref/namespacecom_1_1sun_1_1star_1_1sheet.html https://api.libreoffice.org/docs/idl/ref/namespacecom_1_1sun_1_1star_1_1uno.html +https://www.openoffice.org/api/docs/common/ref/com/sun/star/sheet/module-ix.html + https://www.openoffice.org/api/docs/common/ref/com/sun/star/sheet/AddIn.html -https://www.openoffice.org/api/docs/common/ref/com/sun/star/sheet/module-ix.html +https://git.libreoffice.org/core/ diff --git a/build/Lox365.oxt b/build/Lox365.oxt index 9917f21..b88f73b 100644 Binary files a/build/Lox365.oxt and b/build/Lox365.oxt differ diff --git a/build/interface.rdb b/build/interface.rdb index 201fc07..f68b8ad 100644 Binary files a/build/interface.rdb and b/build/interface.rdb differ diff --git a/build/interface.urd b/build/interface.urd index 20d6a02..3ff4193 100644 Binary files a/build/interface.urd and b/build/interface.urd differ diff --git a/description.xml b/description.xml index 0e4a235..f5653a5 100644 --- a/description.xml +++ b/description.xml @@ -4,7 +4,7 @@ xmlns:xlink="http://www.w3.org/1999/xlink"> - + goosepirate Lox365 diff --git a/interface.idl b/interface.idl index 87d10c2..acf6652 100644 --- a/interface.idl +++ b/interface.idl @@ -35,7 +35,7 @@ module org { module openoffice { module sheet { module addin { [in] sequence< sequence< any > > array ); sequence< sequence< any > > UNIQUE( - [in] sequence< sequence< any > > array + [in] com::sun::star::table::XCellRange array ); sequence< sequence< any > > XLOOKUP( [in] any lookupValue, diff --git a/loader.py b/loader.py index 8b1563f..97fd8f6 100644 --- a/loader.py +++ b/loader.py @@ -1,3 +1,8 @@ +# LibreOffice 7.4 on Windows bundles Python 3.8, so import from __future__ +# in order to use new type hinting. +# https://peps.python.org/pep-0585/ +from __future__ import annotations + import uno import unohelper from org.openoffice.sheet.addin import XLox365 @@ -41,7 +46,12 @@ def FILTER (self, *args): return lx.FILTER (*args) def SORT (self, *args): return lx.SORT (*args) def TEXTSPLIT(self, *args): return lx.TEXTSPLIT(*args) def TOCOL (self, *args): return lx.TOCOL (*args) - def UNIQUE (self, *args): return lx.UNIQUE (*args) + + def UNIQUE(self, *args): + shrunk_corners = self._get_shrunk_corners(args[0]) + shrunk_dataarray = self._get_dataarray(args[0], shrunk_corners) + args = (shrunk_dataarray,) + return lx.UNIQUE(*args) def XLOOKUP(self, *args): shrunk_corners1 = self._get_shrunk_corners(args[1]) diff --git a/pythonpath/lox365.py b/pythonpath/lox365.py index 7248284..3b9288f 100644 --- a/pythonpath/lox365.py +++ b/pythonpath/lox365.py @@ -18,7 +18,8 @@ def DBG_PY(cr, evalx): useful_positions['left'], useful_positions['top'], useful_positions['right'], useful_positions['bottom']).DataArray return ((repr(evalx),),) - # return ((pprint.pformat(repr(eval(evalx))),),) + # try: return ((pprint.pformat(repr(eval(evalx))),),) + # except Exception as e: return ((pprint.pformat(repr(e)),),) def FILTER(array, include, ifEmpty=ERR_CALC): if ifEmpty is None: ifEmpty = ERR_CALC