Tutos geek

Tutoriaux linux, debian, android et autres

Trier les feuilles d'un classeur LibreOffice

31/07/2015 - Aucun commentaire

Si vous souhaitez trier alphabétiquement toutes les feuilles d'un document LibreOffice de type Classeur vous pouvez le faire avec une macro Python.

Notez que vous aurez besoin d'une machine virtuelle Java idéalement en version 6 et en 32 bits (la FAQ dit que la 7 peut poser problème).

Rendez-vous dans le répertoire des scripts python de LibreOffice, par défaut dans
C:\Program Files (x86)\LibreOffice 4\share\Scripts\python

Créez un fichier SheetSort.py
def sheets_sort():

	doc = XSCRIPTCONTEXT.getDocument()
	sheets = doc.getSheets()
	sheetnames = sorted( sheets.getElementNames() )
	for i, sheet in enumerate( sheetnames ):
		sheets.moveByName( sheet, i)

Dans LibreOffice, ouvrez le menu Tools, Macros, Organize Macros, Python.


Dépliez LibreOffice Macros et vous devriez voir SheetSort. Sélectionnez la méthode sheets_sort et cliquez sur Run.


Et voilà, les feuilles sont triées.


LibreOffice version 4.4.4.3 English
Java version JRE 6u45 i586
Windows 7 Pro 64 bits - SP1


Sources :
La macro : https://forum.openoffice.org/en/forum/viewtopic.php?f=20&t=49828
Emplacement des scripts : https://tmtlakmal.wordpress.com/2013/08/11/a-simple-python-macro-in-libreoffice-4-0/
LibreOffice et Java : https://wiki.documentfoundation.org/Documentation/Install/Linux/fr