Iniziamo a scrivere macro in Python
Iniziamo a scrivere macro in Python
Supponiamo che io conosca la sintassi del pyton, cosa devo fare per scrivere una macro in pyton ?
1) devo necessariamente installare Pyton su windows oppure basta APSO ?
2) è necessario anche JRE ?
3) dove trovo esempi di macro già fatte tipo Pitonyak ?
1) devo necessariamente installare Pyton su windows oppure basta APSO ?
2) è necessario anche JRE ?
3) dove trovo esempi di macro già fatte tipo Pitonyak ?
Ultima modifica di charlie il sabato 7 luglio 2018, 17:57, modificato 1 volta in totale.
Motivazione: Corretto titolo
Motivazione: Corretto titolo
-------------------
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
-
- Volontario
- Messaggi: 380
- Iscritto il: martedì 22 ottobre 2013, 1:35
Re: Iniziamo a scrivere macro in Pyton
1.Non è necessario installare python su Windows, LibreOffice ce l'ha già. Tuttavia, il python standard contiene un semplice editor del codice, che potrebbe facilitare la creazione dei script, perciò consiglio vivamente di averlo installato.
2. JRE serve per il coretto funzionamento del'intera suite, indipendemente se si usa python o no.
3. Questa é la guida ufficiale, mentre qui trovi un articolo tipo Pitonyak.
2. JRE serve per il coretto funzionamento del'intera suite, indipendemente se si usa python o no.
3. Questa é la guida ufficiale, mentre qui trovi un articolo tipo Pitonyak.
LibreOffice ultima versione su Windows 10
Re: Iniziamo a scrivere macro in Pyton
Buongiorno a tutti, ho scritto la mia prima macro in python
funziona, ma se utilizzo un pulsante per lanciarla ottengo l'errore allegato, perché ?
inoltre vorrei sapere:
1) le due import sembrano non essere necessarie, quando lo sono ?
2) anche non è necessaria, a cosa serve ?
Codice: Seleziona tutto
import uno
import unohelper
def prova():
doc = XSCRIPTCONTEXT.getDocument()
active_sheet = doc.CurrentController.ActiveSheet
cell1 = active_sheet.getCellRangeByName("B1")
cell1.String = "Hello world"
aa = active_sheet.getCellRangeByName("A1").String
active_sheet.getCellRangeByName("A2").String = aa
g_exportedScripts = prova,
inoltre vorrei sapere:
1) le due import sembrano non essere necessarie, quando lo sono ?
2) anche
Codice: Seleziona tutto
g_exportedScripts = prova,
-------------------
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
-
- Volontario
- Messaggi: 380
- Iscritto il: martedì 22 ottobre 2013, 1:35
Re: Iniziamo a scrivere macro in Pyton
Ciao patel.
In alcuni casi bisogna inserire un argomento opzionale, con asterisco, quindi sarebbe meglio se lo fai SEMPRE :
Che cos'è un argomento opzionale, vedi la guida ufficiale python.
Nei tuo esempio l'importazione dei moduli uno e unohelper non è necessaria, tuttavia questi moduli contengono
tante funzioni, per lavorare meglio con LibreOffice.
g_ExportedScripts sarebbe l'elenco delle macro, che l'utente può vedere, quando sceglie di lanciare una macro
dal menu Macro-->Lancia una macro, nel tuo caso lui vedrà solo la macro prova
Sto scrivendo un foglio, per un ristorante, che permette di conteggiare e sistemare i piatti scelti dal cliente.
Per mostrarti la differenza tra la velocità d'esecuzione Basic vs. Python, troverai due menu, aggiunti da me : Macro Basic e Macro Python.
Entrambe permettono di nascondere le righe vuote, e rispettivamente, di mostrarli, con le voci hide_empty_rows e show_all .
Sotto basic il codice è scritto in Basic, quindi sotto python è Python.
Nel mio computer la differenza è enorme.
In alcuni casi bisogna inserire un argomento opzionale, con asterisco, quindi sarebbe meglio se lo fai SEMPRE :
Codice: Seleziona tutto
def myFunction(*args):
....
Nei tuo esempio l'importazione dei moduli uno e unohelper non è necessaria, tuttavia questi moduli contengono
tante funzioni, per lavorare meglio con LibreOffice.
g_ExportedScripts sarebbe l'elenco delle macro, che l'utente può vedere, quando sceglie di lanciare una macro
dal menu Macro-->Lancia una macro, nel tuo caso lui vedrà solo la macro prova
Sto scrivendo un foglio, per un ristorante, che permette di conteggiare e sistemare i piatti scelti dal cliente.
Per mostrarti la differenza tra la velocità d'esecuzione Basic vs. Python, troverai due menu, aggiunti da me : Macro Basic e Macro Python.
Entrambe permettono di nascondere le righe vuote, e rispettivamente, di mostrarli, con le voci hide_empty_rows e show_all .
Sotto basic il codice è scritto in Basic, quindi sotto python è Python.
Nel mio computer la differenza è enorme.
- Allegati
-
- Conteggio piatti.ods
- (31.07 KiB) Scaricato 411 volte
LibreOffice ultima versione su Windows 10
Re: Iniziamo a scrivere macro in Python
Grazie dei suggerimenti, funzionano, e grazie del file allegato, sul mio pc la differenza è poco apprezzabile, comunque c'è.
Un'altra domanda, è possibile usare python senza installare l'estensione APSO ?
Un'altra domanda, è possibile usare python senza installare l'estensione APSO ?
-------------------
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
-
- Volontario
- Messaggi: 380
- Iscritto il: martedì 22 ottobre 2013, 1:35
Re: Iniziamo a scrivere macro in Python
Usare python, si. Ma devi trovare un modo per salvare le macro python nel documento, quello che fa APSO. Io, ad esempio, ho scritto per le mie esigenze , un codice per il python, versione desktop, quindi non devo installare nessuna estensione.
LibreOffice ultima versione su Windows 10
Re: Iniziamo a scrivere macro in Python
Se ho ben capito tu scrivi il codice con l'editor di python, unzippi il file ods e lo salvi nella cartella Python
-------------------
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
-
- Volontario
- Messaggi: 380
- Iscritto il: martedì 22 ottobre 2013, 1:35
Re: Iniziamo a scrivere macro in Python
Esatto...in più,vanno aggiunte anche alcune righe nel file manifest.
LibreOffice ultima versione su Windows 10
Re: Iniziamo a scrivere macro in Python
ho trovato un codice per aprire un nuovo documento calc, aggiungere dati e creare un grafico, mi da errore su questa riga
oCharts.addNewByName( "Sales", makeRectangle( 8000, 1000, 16000, 10000 ), Array( oCellRangeAddress ), True, True )
quale modulo devo importare ?
oCharts.addNewByName( "Sales", makeRectangle( 8000, 1000, 16000, 10000 ), Array( oCellRangeAddress ), True, True )
quale modulo devo importare ?
-------------------
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
-
- Volontario
- Messaggi: 380
- Iscritto il: martedì 22 ottobre 2013, 1:35
Re: Iniziamo a scrivere macro in Python
Allega lo screenshot del errore, cosi ti spiegherò un trucchetto, come leggere gli errori.
LibreOffice ultima versione su Windows 10
Re: Iniziamo a scrivere macro in Python
eccolo
- Allegati
-
- Cattura.JPG (38.48 KiB) Visto 10418 volte
-------------------
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
-
- Volontario
- Messaggi: 380
- Iscritto il: martedì 22 ottobre 2013, 1:35
Re: Iniziamo a scrivere macro in Python
Nel Modulo.py stai cercando di usare una funzione non-definita,vedi la linia 147...ti ricordi qualle sarebe il codice per Basic, in questo caso? Io non sono molto pratico con i grafici.
LibreOffice ultima versione su Windows 10
Re: Iniziamo a scrivere macro in Python
ti allego un file che produce un grafico in basic
- Allegati
-
- GraficoMacro.ods
- (15.05 KiB) Scaricato 270 volte
-------------------
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
-
- Volontario
- Messaggi: 164
- Iscritto il: venerdì 9 giugno 2017, 13:48
Re: Iniziamo a scrivere macro in Python
Salve patel,
Ecco per l'esempio la macro tradotta in python.
No so se conosci questa pagina del wiki: https://wiki.openoffice.org/wiki/Python ... _to_Python.
Cordiali saluti.
Ecco per l'esempio la macro tradotta in python.
No so se conosci questa pagina del wiki: https://wiki.openoffice.org/wiki/Python ... _to_Python.
Cordiali saluti.
Codice: Seleziona tutto
from com.sun.star.awt import Rectangle
from com.sun.star.chart.ChartDataCaption import VALUE
from com.sun.star.chart.ChartDataRowSource import COLUMNS
def CreateChart(event=None):
doc = XSCRIPTCONTEXT.getDocument()
sName = "ADP_Chart"
sDataRng = "A1:B6"
oSheet = doc.Sheets.getByIndex(0) # con le ultime versioni di LibreOffice si può anche scrivere: doc.Sheets[0]
oAddress = oSheet.getCellRangeByName(sDataRng).getRangeAddress()
oCharts = oSheet.getCharts()
if not oCharts.hasByName(sName):
# si può anche scrivere così: oRect = Rectangle(10000, 1000, 10000, 10000)
oRect = Rectangle()
oRect.X = 10000
oRect.Y = 1000
oRect.Width = 10000
oRect.Height= 10000
# The rectangle identifies the dimensions in 1/100 mm.
# The address is the location of the data.
# True indicates that column headings should be used.
# False indicates that Row headings should not be used.
oCharts.addNewByName(sName, oRect, (oAddress,), True, False)
oChart = oCharts.getByName(sName)
oChart.setRanges((oAddress,))
oChartDoc = oChart.getEmbeddedObject()
# oChartDoc.attachData(oAddress)
oTitle = oChartDoc.getTitle()
oTitle.String = "Andy - " #& Now
# Create a diagram.
oDiagram = oChartDoc.createInstance("com.sun.star.chart.XYDiagram")
oChartDoc.setDiagram(oDiagram)
oDiagram = oChartDoc.getDiagram()
oDiagram.DataCaption = VALUE
oDiagram.DataRowSource = COLUMNS
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
Win7 + LinuxMint
Re: Iniziamo a scrivere macro in Python
Grazie Hubert, funziona bene, altre domande:
1) nella finestra di errore mi viene segnalato il numero di linea che però non posso vedere su notepad e neppure su wordpad, che fare ?
2) dove trovo i nomi dei moduli da importare e la descrizione ?
1) nella finestra di errore mi viene segnalato il numero di linea che però non posso vedere su notepad e neppure su wordpad, che fare ?
2) dove trovo i nomi dei moduli da importare e la descrizione ?
-------------------
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
-
- Volontario
- Messaggi: 164
- Iscritto il: venerdì 9 giugno 2017, 13:48
Re: Iniziamo a scrivere macro in Python
Ti consiglio un editor di testo più evoluto. Su Windows c'è Notepad++, che è un'ottima opzione. Ma ce ne molti altri, gratuiti o no.patel ha scritto:nella finestra di errore mi viene segnalato il numero di linea che però non posso vedere su notepad e neppure su wordpad, che fare ?
In inglese tutto è lì : https://docs.python.org/2.7/library. In italiano ho trovato questo (ma un po vecchio) : https://docs.python.it/html/lib.patel ha scritto:dove trovo i nomi dei moduli da importare e la descrizione ?
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
Win7 + LinuxMint
-
- Volontario
- Messaggi: 380
- Iscritto il: martedì 22 ottobre 2013, 1:35
Re: Iniziamo a scrivere macro in Python
Ciao ragazzi.
humbert, amico, grazie per le risposte.
patel, scusa l'assenza, sono stato fuori per tutta la giornata.
Vorrei solo consigliare di evitare assolutamente che studi o impari il vecchio python, segnalato nel link da humbert.
Parti subito con python 3, scordati di python 2.
Vorrei anche consigliarti come editor o quello integrato con python, la versione standard, oppure per i professionisti c'è PyCharm, che può spaventare a prima vista, pero il riscontro, lavorando con lui, è enorme...ad esempio lavorando con la sua console ,riesci a vedere tutte le proprietà e i metodi, nel runtime.
Saluti.
humbert, amico, grazie per le risposte.
patel, scusa l'assenza, sono stato fuori per tutta la giornata.
Vorrei solo consigliare di evitare assolutamente che studi o impari il vecchio python, segnalato nel link da humbert.
Parti subito con python 3, scordati di python 2.
Vorrei anche consigliarti come editor o quello integrato con python, la versione standard, oppure per i professionisti c'è PyCharm, che può spaventare a prima vista, pero il riscontro, lavorando con lui, è enorme...ad esempio lavorando con la sua console ,riesci a vedere tutte le proprietà e i metodi, nel runtime.
Saluti.
LibreOffice ultima versione su Windows 10
-
- Volontario
- Messaggi: 164
- Iscritto il: venerdì 9 giugno 2017, 13:48
Re: Iniziamo a scrivere macro in Python
Ciao,
Sono completamente d'accordo ma... non va dimenticato che OpenOffice utilizza ancora la versione Python2 .
Sono completamente d'accordo ma... non va dimenticato che OpenOffice utilizza ancora la versione Python2 .
OpenOffice 4.1.2/4.1.4 | LibreOffice 5.4.4/6.0
Win7 + LinuxMint
Win7 + LinuxMint
Re: Iniziamo a scrivere macro in Python
Come faccio ad utilizzare come predefinito per i file.py l'editor di IDLE Python 3.6 che ho installato su win ?
Risolto, basta cercare "C:\Program Files\Python36\Lib\idlelib\idle.bat"
Risolto, basta cercare "C:\Program Files\Python36\Lib\idlelib\idle.bat"
-------------------
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