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