goosepirate / lox365

⚗️ Lox365: XLOOKUP for LibreOffice
GNU General Public License v3.0
82 stars 5 forks source link
libreoffice libreoffice-calc libreoffice-extension office python python3

⚗️ Lox365: XLOOKUP for LibreOffice

Lox365 is a LibreOffice Calc extension that adds modern spreadsheet functions like XLOOKUP, FILTER, and more.

Screenshot

Screenshot

Do you like using Lox365? Let me know in the Discussions. Maybe buy me a coffee.

Donate using Liberapay

Install or update

  1. Download the extension Lox365.oxt from Releases.
  2. Start LibreOffice > Tools > Extension Manager > Add > Select the oxt file > restart LibreOffice.

Usage

Use the function like you would any other function in LibreOffice Calc.

Multiple outputs

To output results in multiple cells, enter your formula with Ctrl + Shift + Enter.

This is because Lox365 functions are array functions. LibreOffice Calc does not support Excel's dynamic arrays.

Syntax

FILTER

Filters an array.

Similar to Excel's FILTER.

Screenshot of FILTER function

=FILTER(array, include, [if_empty])

IMAGE

Returns an image from a given source.

The source can be a local image file or a web URL. You can use a web URL of a third-party service to generate, for example, a QR code, equation, or diagram.

Similar to Excel's IMAGE.

Screenshot of IMAGE function

Screenshot of IMAGE function

Screenshot of IMAGE function

Screenshot of IMAGE function

=IMAGE(out_cell, source)

SORT

Sorts an array.

Similar to Excel's SORT.

Screenshot of SORT function

=SORT(array, [sort_index], [sort_order])

TEXTSPLIT

Splits text into columns using delimiters.

Similar to Excel's TEXTSPLIT.

Screenshot of TEXTSPLIT function

=TEXTSPLIT(text, col_delimiter)

TOCOL

Returns the array as one column.

Similar to Excel's TOCOL.

Screenshot of TOCOL function

=TOCOL(array)

UNIQUE

Returns the unique values from a range or array.

Similar to Excel's UNIQUE.

Screenshot of UNIQUE function

=UNIQUE(array)

XLOOKUP

Searches an array for a match and returns the corresponding item from a second array.

Similar to Excel's XLOOKUP.

Screenshot of XLOOKUP function

=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found])

Why

I use these functions quite often in Excel and wanted to use them in LibreOffice too, so I made this.

Here are what others are saying about this project:

Thanks for this; great idea!

— u/timespreader

Great work, goose! 😊

— Mike Saunders

Really nice idea.

— Behzat Yildirim

Very well done to the creator of the extension.

— Jimmy

Oh, wonderful!

😀 Thanks for implementing this!

— Arne

The support of XLOOKUP is a great addition.

— Marius Spix

Dobre rozszerzenie, bardzo przydatne funkcje.

— Piotr Osada

Pues muchísimas gracias.

— Guille

Bravo!

— Shakir Mahmud Sumon

The IMAGE function is very useful for those of us that import Google Docs that contain remote (URL base) images.

— René Haché

Keep up the great work!👍

— LeighAnne Kenney

👍😀

A 1000 thanks.

— Mikael Arling

The idea is splendid because Microsoft's IMAGE function in Excel doesn't work with local pictures or with pictures from LAN shares.

— Gabriela Salvisberg

Compatibility

Lox365 is not compatible with Microsoft Excel.

Lox365 must be installed in order to read and write Lox365 functions. You can check whether it is installed using LibreOffice Extension Manager.

On a machine without Lox365 installed, you will not be able to view calculation results from Lox365 functions.

Availability of other functions

These functions are not in LibreOffice and not provided by Lox365 but are available in the latest Excel:

These functions are not in LibreOffice Calc now, but are planned to be added:

These functions are already available in LibreOffice:

References

Usage

https://wiki.documentfoundation.org/Documentation/HowTo/install_extension

https://wiki.documentfoundation.org/Feature_Comparison:_LibreOffice_-_Microsoft_Office

Media

https://blog.documentfoundation.org/blog/2022/09/23/lox365-extension-xlookup-and-more-for-libreoffice-calc/

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/

https://www.reddit.com/r/libreoffice/comments/xltuio/lox365_extension_xlookup_filter_sort_and_more_for/

https://www.reddit.com/r/opensource/comments/xfdmml/lox365_xlookup_for_libreoffice/

https://twitter.com/LibreOffice/status/1573232603351879682

https://fosstodon.org/@libreoffice/109046849962893237

https://www.facebook.com/libreoffice.org/posts/pfbid07mXEodbV2i32W6JkbRYWdDoyw8sUkiw7cX8QdTLU357AhJKGr9QoH5zKeJUxArkzl

[es] https://es.blog.documentfoundation.org/extension-lox365-xlookup-y-mas-para-libreoffice-calc/

[es] https://www.youtube.com/watch?v=BSPCJnc6r2g

[ja] https://forest.watch.impress.co.jp/docs/news/1442776.html

[ja] https://opensource.srad.jp/story/22/09/27/1337200/

[ja] https://www.zaikei.co.jp/article/20220928/691186.html

[pt] https://www.matsuura.com.br/2022/09/extensao-lox365-xlookup-e-mais-para.html

[tr] https://blog.libreoffice.org.tr/2022/09/23/libreoffice-calc-icin-yeni-bir-eklenti-goosepirate/

https://www.ubuntubuzz.com/2023/06/how-to-add-xlookup-function-to-libreoffice-calc.html

https://www.reddit.com/r/libreoffice/comments/16gaeth/lox365_xlookup_and_now_image_for_libreoffice/

https://fosstodon.org/@libreoffice/111052323463423962

https://twitter.com/LibreOffice/status/1701582897784729628

https://www.facebook.com/libreoffice.org/posts/pfbid02882qs7Ek5EZXgSkpkZFMHXCLHszP87pUT8uKcHDpSfwAZfWVytHanGh5fFGocieFl

[zh] https://www.youtube.com/watch?v=ndvbu0kC83o

https://www.youtube.com/watch?v=_zHuJIFLSMw

Development

https://bugs.documentfoundation.org/show_bug.cgi?id=126573

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://help.libreoffice.org/latest/en-US/text/sbasic/python/python_programming.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://git.libreoffice.org/core/

https://forum.openoffice.org/en/forum/

LibreOffice API

https://api.libreoffice.org/docs/idl/ref/namespaces.html

https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1beans_1_1XPropertySet.html

https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1sheet_1_1AddIn.html

https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1table_1_1XCellRange.html

https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1uno_1_1XInterface.html

Other

https://extensions.libreoffice.org/en/extensions/show/27434

https://bugs.documentfoundation.org/

https://ask.libreoffice.org/

https://forum.openoffice.org/en/forum/index.php