Python e macro
Python e macro
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
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
Re: Python e macro
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.
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
Openoffice 4.1.13 su windows 10
Re: Python e macro
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
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
Re: Python e macro
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.
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
Re: Python e macro
Sono decisamente d'accordo, pure io ho studiato e lo studio attualmente il python.paolokap ha scritto:Devo dire che il python è decisamente più potente
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.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.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Python e macro
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ì?)
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
Re: Python e macro
puoi postare il link ?paolokap ha scritto:.... pure ho seguito un intero corso universitario su youtube fatto veramente bene.
penso che tu abbia fatto bene, il basic è un linguaggio superato, non vale la pena impararlo, però col python troverai pochi aiuti su questo forumma poi per puro caso mi sono imbattuto nel python e ho mollato il basic.
-------------------
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
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
Re: Python e macro
certo! Ti invio il link della lezione n 1 poi facilmente trovi tutte le altre (si tratta di un corso base)
lezione 1 python
lezione 1 python
LibreOffice 7.4 Kubuntu 22.04 LTS
Re: Python e macro
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.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?
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Python e macro
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??
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
Re: Python e macro
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
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
Re: Python e macro
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.
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.patel ha scritto:la più semplice che ho trovato, almeno per iniziare, è quella di pitonyak
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
Openoffice 4.1.13 su windows 10
Re: Python e macro
Infatti pitonyak non è affatto semplice anzi! Ma forse patel intendeva la più semplice fra quelle trovate. Non oso immaginare cosa dovevano essere quelle difficili!Gaetanopr ha scritto: La più semplice?? per principianti non direi!!! paolokap hai mai letto la guida a staroffice 8?
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
Re: Python e macro
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.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)
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
Openoffice 4.1.13 su windows 10
Re: Python e macro
Inoltre il VBA di microsoft è molto più facile ed intuitivo del basic di openofficepaolokap 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
-------------------
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
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
Re: Python e macro
Per non parlare del registratore di macropatel ha scritto:Inoltre il VBA di microsoft è molto più facile ed intuitivo del basic di openofficepaolokap 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
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Python e macro
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
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
Re: Python e macro
[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
[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
Re: Python e macro
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.
Ti basta dare un occhiata all'indice.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Python e macro
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
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
Re: Python e macro
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
Openoffice 4.1.13 su windows 10
Re: Python e macro
Ciao a tutti, avete visto qui: https://wiki.documentfoundation.org/Macros/Python_Guide ?
Mi sembrano "lavori in corso" ma qualcosa c'è, mi pare.
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
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: Python e macro
Non l'avevo visto, bene qualcosa si muove.
Grazie
Grazie
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Python e macro
Ottimo!! Grazie per il link E' anche in italianocharlie ha scritto:Ciao a tutti, avete visto qui: https://wiki.documentfoundation.org/Macros/Python_Guide .
LibreOffice 7.4 Kubuntu 22.04 LTS
Re: Python e macro
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.
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
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
-
- Volontario
- Messaggi: 164
- Iscritto il: venerdì 9 giugno 2017, 13:48
Re: Python e macro
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.
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
Win7 + LinuxMint
Re: Python e macro
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???
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
Re: Python e macro
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
Re: Python e macro
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
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