Python e macro

Creare una macro - Scrivere uno script - Usare le API
Rispondi
paolokap
Messaggi: 353
Iscritto il: giovedì 9 ottobre 2014, 13:09

Python e macro

Messaggio da paolokap »

Salve. Spero che sul gruppo ci sia qualcuno esperto in python.
Volevo sapere se c'era una convenienza a scrivere macro i python piuttosto che in basic per operare sui vari applicativi di Libreoffice (calc, writer etc).
Con convenienza intendo dire se le macro possono essere programmate utilizzando solo ed esclusivamente la logica e le istruzioni in python oppure invece alla fine bisogna utilizzare comunque il basic.
Grazie
LibreOffice 7.4 Kubuntu 22.04 LTS
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Python e macro

Messaggio da Gaetanopr »

Ciao, qualche mese fa si era un pò discusso di implementare la sezione macro con argomenti che trattassero procedure scritte con python, sul forum internazionale è abbastanza trattato.
La convenienza dipende (a mio parere) dal fatto se tu conosca o meno python, se sei all'inizio sia con il basic che con python di sicuro troverai più aiuto, esempi e documentazione per il linguaggio basic, comunque a livello di logica e istruzioni dovrai usare quelle proprie del phyton se decidi di programmare con questo.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Python e macro

Messaggio da patel »

Vero, ma nessun esperto si è fatto avanti per spiegare le basi per iniziare
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
paolokap
Messaggi: 353
Iscritto il: giovedì 9 ottobre 2014, 13:09

Re: Python e macro

Messaggio da paolokap »

Ho studiato un po' il python e un po' il basic. Devo dire che il python è decisamente più potente e poi ho trovato molta documentazione in italiano come pure ho seguito un intero corso universitario su youtube fatto veramente bene.
Non posso dire la stessa cosa per il basic. L'ho studiato dal wiki di openoffice ma ad un cero punto non ho capito più nulla perché sembra fatto per chi già conosce bene il linguaggio. Il famoso manuale in basic di Andrew Pitonyak ha il difetto di essere in inglese. lo stavo anche traducendo un po' alla volta ma poi per puro caso mi sono imbattuto nel python e ho mollato il basic.
LibreOffice 7.4 Kubuntu 22.04 LTS
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Python e macro

Messaggio da Gaetanopr »

paolokap ha scritto:Devo dire che il python è decisamente più potente
Sono decisamente d'accordo, pure io ho studiato e lo studio attualmente il python.
paolokap ha scritto:e poi ho trovato molta documentazione in italiano come pure ho seguito un intero corso universitario su youtube fatto veramente bene.
Non posso dire la stessa cosa per il basic.
Io per documentazione intendo basic openoffice cioè il basic applicato a openoffice di sicuro troverai molti più esempi e guide rispetto al python applicato a openoffice. Se parli di guide esclusivamente del linguaggio in se questo è un altro discorso.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
paolokap
Messaggi: 353
Iscritto il: giovedì 9 ottobre 2014, 13:09

Re: Python e macro

Messaggio da paolokap »

quindi tu dici che con il python trovo pochi esempi di macro da utilizzare in libreoffice. Però ci sono in python giusto? Non sono per niente un esperto di linguaggi, ma ad occhio penso che forse vale la pena utilizzare il python anche se ci sono poche guide per le macro. Che ne pensi?

Comunque quello che vedo essere difficile, non solo con il basic, è trovare una guida chiara che spieghi come cavolo si usano i comandi UNO (si chiamano così?)
LibreOffice 7.4 Kubuntu 22.04 LTS
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Python e macro

Messaggio da patel »

paolokap ha scritto:.... pure ho seguito un intero corso universitario su youtube fatto veramente bene.
puoi postare il link ?
ma poi per puro caso mi sono imbattuto nel python e ho mollato il basic.
penso che tu abbia fatto bene, il basic è un linguaggio superato, non vale la pena impararlo, però col python troverai pochi aiuti su questo forum
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
paolokap
Messaggi: 353
Iscritto il: giovedì 9 ottobre 2014, 13:09

Re: Python e macro

Messaggio da paolokap »

certo! Ti invio il link della lezione n 1 poi facilmente trovi tutte le altre (si tratta di un corso base)

lezione 1 python
LibreOffice 7.4 Kubuntu 22.04 LTS
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Python e macro

Messaggio da Gaetanopr »

paolokap ha scritto:quindi tu dici che con il python trovo pochi esempi di macro da utilizzare in libreoffice. Però ci sono in python giusto? Non sono per niente un esperto di linguaggi, ma ad occhio penso che forse vale la pena utilizzare il python anche se ci sono poche guide per le macro. Che ne pensi?
Ti ho già risposto nel messaggio precedente, comunque anche se obsoleto il basic, preferisco continuare ad usare questo, ad esempio ho cercato di convertire la macro del tuo post viewtopic.php?f=26&t=10238 in python ma non ci sono riuscito, ecco perché non intraprenderei mai un progetto con python anche se c'è chi lo usa abitualmente con openoffice.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
paolokap
Messaggi: 353
Iscritto il: giovedì 9 ottobre 2014, 13:09

Re: Python e macro

Messaggio da paolokap »

Ciao Gaetanopr
lasciamo stare ora se conviene il python o il basic, il fatto è che non sono riuscito a trovare niente di utile per imparare ad usare queste macro. Cioè fino a quando parliamo di istruzioni (basic, python) if for print, etc etc non ci sono problemi, ma quando poi bisogna utilizzare ste UNO, dove si trova una documentazione per principianti? Per esempio nel messaggio dove mi aiutato a risolvere quel problema (ti ringrazio ancora) dove trovo i comandi DatabaseRanges.Count, oRange.refresh() per capire come funzionano? e dove per utilizzare le UNO. Ho provato sul wiki di openoffice ma ho capito poco. Mi sembra scritto per chi già sa le cose. Possibile che non c'è una guida semplice per iniziare??
LibreOffice 7.4 Kubuntu 22.04 LTS
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Python e macro

Messaggio da patel »

la più semplice che ho trovato, almeno per iniziare, è quella di pitonyak dove trovi moltissimi esempi, poi c'è il forum, per il resto concordo con te che sono tutte per iniziati. Per quanto riguarda l'inglese ti ci devi abituare, in italiano trovi poco
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Python e macro

Messaggio da Gaetanopr »

paolokap ha scritto:.. ma quando poi bisogna utilizzare ste UNO, dove si trova una documentazione per principianti? Per esempio nel messaggio dove mi aiutato a risolvere quel problema (ti ringrazio ancora) dove trovo i comandi DatabaseRanges.Count, oRange.refresh() per capire come funzionano? e dove per utilizzare le UNO.
patel ha scritto:la più semplice che ho trovato, almeno per iniziare, è quella di pitonyak
La più semplice?? per principianti non direi!!! paolokap hai mai letto la guida a staroffice 8? ma non una volta ma almeno un paio di volte perchè ad ogni rilettura comprendi sempre di più, io ho iniziato con questa poi sono passato a pitoniak e nel frattempo partecipavo o almeno tentavo di partecipare a tutte le discussioni sul forum riguardanti Calc Base e macro.
Per quanto riguarda il tuo quesito già avevo affrontato diverse volte questo problema per lavori miei, comunque strumenti molto utili sono MRI - XRAY e le API una volta capito il meccanismo saranno più comprensibili(la guida staroffice dedica un capitolo alle API interfacce servizi) a questo link trovi i metodi supportati da interface XDatabaseRange http://www.openoffice.org/api/docs/comm ... Range.html
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
paolokap
Messaggi: 353
Iscritto il: giovedì 9 ottobre 2014, 13:09

Re: Python e macro

Messaggio da paolokap »

Gaetanopr ha scritto: La più semplice?? per principianti non direi!!! paolokap hai mai letto la guida a staroffice 8?
Infatti pitonyak non è affatto semplice anzi! Ma forse patel intendeva la più semplice fra quelle trovate. Non oso immaginare cosa dovevano essere quelle difficili! :-)
Ho letto la 7 (la 8 è tanto diversa ?), ma avevo notato che era pari pari a quella del wiki su openoffice e quindi ho continuato sul wiki

Darò un'occhiata al link che mi hai indicato. Certo che la cosa si fa sempre più difficile, non tanto per l'argomento in se, ma per la mancanza di documentazione per chi vuole iniziare. E' questo il motivo della scelta di python; linguaggio potente e decisamente più semplice del basic e quindi avevo pensato che anche l'approccio con ste API UNO etc fosse dello stesso tenore. Invece a quanto pare è anche peggio!

Sicuramente se avessi scelto la suite di Office e quindi il basic di microsoft avrei trovato molta più documentazione ma tant'è devo arrangiarmi :-( .

Visto quello che devo fare forse lo sforzo da compiere non è tanto giustificato.

P.S. ho dato un sguardo al link che mi hai indicato. Da lì poi sono andato a monte di tutto. MA come si fa a capire in quell'elenco infinito a capire dove e quale istruzione utilizzare? Mica si possono conoscere tutte? Per esempio in writer se volessi trovare una istruzione che cancelli le righe di una tabella se la la riga è vuota (oppure contiene uno zero) come si fa a trovarla? (sembra che debba vedere in module table)
LibreOffice 7.4 Kubuntu 22.04 LTS
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Python e macro

Messaggio da Gaetanopr »

paolokap ha scritto:P.S. ho dato un sguardo al link che mi hai indicato. Da lì poi sono andato a monte di tutto. MA come si fa a capire in quell'elenco infinito a capire dove e quale istruzione utilizzare? Mica si possono conoscere tutte? Per esempio in writer se volessi trovare una istruzione che cancelli le righe di una tabella se la la riga è vuota (oppure contiene uno zero) come si fa a trovarla? (sembra che debba vedere in module table)
Nella guida trovi semplici macro che ti aiutano a capire come fare riferimento alle righe, alle tabelle alla formattazione da li puoi capire dove e come intervenire, puoi consultare il forum dove, specialmente in materia di foglio elettronico, sono state affrontate problematiche di qualsiasi genere.. basta saper cercare.
Per capire da quale istruzione partire devi capire com'è strutturato un foglio elettronico, quindi ai vari oggetti alle loro proprietà e metodi, se cerchi come formattare una cella vien da se che devi cercare tra le proprietà delle celle e non dei fogli. Ad esempio partendo da qua https://www.openoffice.org/api/docs/com ... sheet.html puoi studiarti tutto quello collegato all'oggetto foglio, quindi alle celle cliccando su "SheetCellRange" da qui puoi notare tutte le proprietà e i metodi delle celle.
Al posto tuo cercherei di scrivere le macro che ti occorrono sia in basic che in python così soltanto ti rendi conto delle differenze e delle potenzialità dei due linguaggi.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Python e macro

Messaggio da patel »

paolokap ha scritto: Sicuramente se avessi scelto la suite di Office e quindi il basic di microsoft avrei trovato molta più documentazione ma tant'è devo arrangiarmi
Inoltre il VBA di microsoft è molto più facile ed intuitivo del basic di openoffice
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Python e macro

Messaggio da Gaetanopr »

patel ha scritto:
paolokap ha scritto: Sicuramente se avessi scelto la suite di Office e quindi il basic di microsoft avrei trovato molta più documentazione ma tant'è devo arrangiarmi
Inoltre il VBA di microsoft è molto più facile ed intuitivo del basic di openoffice
Per non parlare del registratore di macro :D :D
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Python e macro

Messaggio da patel »

Infatti il registratore di macro Microsoft produce codice utilizzabile ed è molto utile per imparare, quello di OO produce codice spesso non funzionante e sempre incomprensibile
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
paolokap
Messaggi: 353
Iscritto il: giovedì 9 ottobre 2014, 13:09

Re: Python e macro

Messaggio da paolokap »

[quote="Gaetanopr"]
[quote]paolokap hai mai letto la guida a staroffice 8

Scusami Gaetanopr non volevo sapere la 8 è molto dicìversa dalla 7 (che quella che ho)
Grazie
LibreOffice 7.4 Kubuntu 22.04 LTS
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Python e macro

Messaggio da Gaetanopr »

La 7 non l'ho letta ma ricordo di averla visionata velocememte e se non erro non fa accenno alle Api e non affronta il.programma dal punto di vista delle macro ma spiega come operare con le varie applicazioni, quindi la differenza c'è.
Ti basta dare un occhiata all'indice.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
paolokap
Messaggi: 353
Iscritto il: giovedì 9 ottobre 2014, 13:09

Re: Python e macro

Messaggio da paolokap »

No no li affronta. Come avevo già scritto il manuale è identico al wiki d openoffice.
Ti riporto l'indice del capito 4.
Grazie per le info


4 Introduzione alla StarOffice API 67
UNO (Universal Network Objects) 67
Proprietà e metodi 68
Proprietà 68
Metodi 69
Modulo, servizi e interfacce 69
Strumenti per lavorare con UNO 70
Il metodo supportsService 70
Proprietà di debug 70
Riferimento della API 71
Presentazione generale di alcune interfacce centrali 71
Creazione di oggetti dipendenti dal contesto 71
Accesso con nome ad oggetti subordinati 72
Accesso basato su indice ad oggetti subordinati 73
Accesso iterativo ad oggetti subordinati 74
LibreOffice 7.4 Kubuntu 22.04 LTS
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Python e macro

Messaggio da Gaetanopr »

Si hai ragione, infatti ti dicevo di non averla letta, andavo a memoria, ho guardato tra le guide che ho conservate sul pc e la 7 si riferisce al manuale utente e non la guida alla programmazione che ho appena visto ed è uguale alla 8, in pratica la 8 è formata da 236 pagine e la 7 da 221 quindi sostanzialmente saranno uguali.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Python e macro

Messaggio da charlie »

Ciao a tutti, avete visto qui: https://wiki.documentfoundation.org/Macros/Python_Guide ?
Mi sembrano "lavori in corso" ma qualcosa c'è, mi pare.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Python e macro

Messaggio da Gaetanopr »

Non l'avevo visto, bene qualcosa si muove.
Grazie
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
paolokap
Messaggi: 353
Iscritto il: giovedì 9 ottobre 2014, 13:09

Re: Python e macro

Messaggio da paolokap »

charlie ha scritto:Ciao a tutti, avete visto qui: https://wiki.documentfoundation.org/Macros/Python_Guide .
Ottimo!! Grazie per il link E' anche in italiano
LibreOffice 7.4 Kubuntu 22.04 LTS
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Python e macro

Messaggio da charlie »

Ormai mi avete contagiato. Avete visto il forum francese? Piuttosto ricco mi pare.
https://forum.openoffice.org/fr/forum/v ... 31#p288118
ed altri post collegati.
Dell'argomento se ne occupa anche l'amico del nostro forum @hubert lambert.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
hubert lambert
Volontario
Volontario
Messaggi: 164
Iscritto il: venerdì 9 giugno 2017, 13:48

Re: Python e macro

Messaggio da hubert lambert »

Ciao a tutti,

Devo scusarmi, perché al momento non ho molto tempo per intervenire sui forum.
A partire da uno script di Hanya, dal forum inglese, ho creato APSO, una piccola estensione che semplifica la scrittura e la gestione di macro Python in LibreOffice/OpenOffice.
L'estensione è già disponibile in italiano e offre i seguenti vantaggi:
- scrittura e modifica degli script da un editor esterno predefinito
- rapida modifica di script integrati nei documenti
- integrazione o estrazione di script da documenti
- debug veloce
- shell interattivo di Python
- aggiornamento automatico

Vi consiglio anche questa pagina (purtroppo in inglese), che espone tutte le differenze tra Basic e Python per il dialogo con l'API UNO.

Cordiali saluti.
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
nickGiard
Messaggi: 65
Iscritto il: lunedì 14 maggio 2012, 22:04

Re: Python e macro

Messaggio da nickGiard »

Salve a tutti, anche se molto in ritardo volevo intervenire nella discussione.
Mi chiedo, perché tanto astio verso il basic? svolge onorevolmente il suo lavoro, mi risulta affidabile.
Certo l'IDE è disastroso, ma si può sviluppare in Notepad++ , magari personalizzandolo allo scopo.
E' incorporato all'interno di LO, per cui lo posso pensare veloce nel gestire le API.
Il problema vero è che LO è ampio e complesso e ci vuole una buona dose di studio delle API e di Pitonyak.
Il passare a Python è sicuramente alettante, ottimi IDE lo gestiscono, primo di tutti PyCharm, ma questo NON risolve il problema che per manovrare LO occorre ancora manovrare le API, e quindi bisogna conoscerle...
Python lo trovo eccezionale per gestire calcoli, DataArray di Calc, ma quando deve manovrare API non è lo stesso del Basic???
Nicola con LibreOffice 7.1 (x64) su Windows 11
nickGiard
Messaggi: 65
Iscritto il: lunedì 14 maggio 2012, 22:04

Re: Python e macro

Messaggio da nickGiard »

Integro: il Vba appare molto più semplice poiché il DOM document object model di excel o word .. con la radice in Application è organizzato ad albero e quindi ogni oggetto discende da un parent e genera a sua volta gli oggetti figli. LO è organizzato solo parzialmente in questo modo, molti oggetto 'sorgono' da servicemanager o CreateUnoService(...) e appaiono slegati dal contesto generale, e questo genera non poche difficoltà, ma posso dire che gli oggetti di LO sono molto più numerosi e possono svolgere molte più funzioni di quelle di Vba.
Nicola con LibreOffice 7.1 (x64) su Windows 11
paolokap
Messaggi: 353
Iscritto il: giovedì 9 ottobre 2014, 13:09

Re: Python e macro

Messaggio da paolokap »

Per me non ci sarebbe differenza, il fatto è che speravo che con il python, per le macro, di trovare documentazione per un principiante, cosa non vera.
Con il basic ho già provato ma la documentazione per chi inizia non l'ho trovata.
Risultato finale ho lasciato perdere con entrambi
LibreOffice 7.4 Kubuntu 22.04 LTS
Rispondi