Libreria
Ufficio
Documenti, fogli di calcolo, PDF e presentazioni.
Funzioni 30
apri_documentocerca_in_pdfconta_pagine_pdfconverti_documentoconverti_tabelladividi_pdfelenca_fogli_excelestrai_pagine_pdfimmagini_in_pdfinfo_pdfleggi_cella_excelleggi_excelleggi_fogli_excelleggi_intervallo_excelleggi_pdfleggi_wordnome_colonna_excelnumero_colonna_excelnuovo_documentoparagrafi_wordruota_pagine_pdfscrivi_excelscrivi_fogli_excelscrivi_pdfscrivi_wordsostituisci_in_wordstampa_unionetabella_in_htmltabelle_wordunisci_pdf
leggi_excel(percorso, foglio = nulla, intestazione = vero)#
Legge un foglio di un file Excel (.xlsx) o LibreOffice (.ods).
Con l'intestazione ogni riga diventa un dizionario: le chiavi sono i nomi scritti nella prima riga. Con intestazione = falso ogni riga è una lista. Senza foglio legge il primo; si può dare il nome ("Voti") o il numero (da 1). Numeri, date e valori logici restano tali; le righe vuote si saltano.
per ogni r in leggi_excel("voti.xlsx") fai stampa(r["nome"], r["voto"]) finescrivi_excel(percorso, righe, foglio = "Foglio1", larghezze = nulla)#
Scrive una tabella in un file Excel (.xlsx) o LibreOffice (.ods).
righe è una lista di dizionari (le chiavi diventano l'intestazione, in grassetto e bloccata in alto) o una lista di liste. Numeri, date (data(...)), soldi e vero/falso restano tali; un testo che inizia con "=" è una formula, anche con i nomi italiani: "=SOMMA(B2:B4)"; delle formule semplici (+ - * /, SOMMA, MEDIA, MIN, MAX, CONTA, ARROTONDA) Leo salva già il risultato. Le colonne si allargano da sole; con larghezze le scegli tu, in caratteri: una lista ([20, 8]) o un dizionario ({"nome": 25, "C": 12}). Senza estensione aggiunge ".xlsx". Restituisce il percorso del file scritto.
scrivi_excel("voti.xlsx", [{"nome": "Ada", "voto": 9}, {"nome": "Bruno", "voto": 7}])scrivi_fogli_excel(percorso, fogli)#
Scrive un file Excel (.xlsx o .ods) con più fogli.
fogli è un dizionario: nome del foglio -> righe (come in scrivi_excel). I fogli restano nell'ordine dato.
scrivi_fogli_excel("scuola.xlsx", {"3A": voti_3a, "3B": voti_3b})elenca_fogli_excel(percorso)#
I nomi dei fogli di un file Excel (.xlsx) o .ods, in ordine.
per ogni f in elenca_fogli_excel("scuola.xlsx") fai stampa(f) fineleggi_cella_excel(percorso, cella, foglio = nulla)#
Il valore di una cella ("B3"), o nulla se è vuota.
Il foglio si può scrivere anche nella cella: "Voti!B3". Delle formule si legge l'ultimo risultato salvato da Excel.
stampa(leggi_cella_excel("conti.xlsx", "B10"))leggi_intervallo_excel(percorso, intervallo, foglio = nulla)#
Le celle di un rettangolo ("A1:C5") come lista di righe.
Le celle vuote sono nulla. Il foglio si può scrivere anche nell'intervallo: "Voti!A1:C5".
variabile tabella = leggi_intervallo_excel("voti.xlsx", "A2:B30")nome_colonna_excel(numero)#
Le lettere di una colonna di Excel dal suo numero (1 -> "A", 28 -> "AB").
stampa(nome_colonna_excel(3) + "5")C5
numero_colonna_excel(lettere)#
Il numero di una colonna di Excel dalle sue lettere ("A" -> 1, "AB" -> 28).
stampa(numero_colonna_excel("D"))4
leggi_word(percorso)#
Tutto il testo di un documento Word (.docx) o LibreOffice (.odt).
I paragrafi vanno a capo; le celle delle tabelle sono separate da una tabulazione.
stampa(leggi_word("relazione.docx"))paragrafi_word(percorso)#
La lista dei paragrafi (non vuoti) di un documento .docx o .odt, fuori dalle tabelle.
variabile p = paragrafi_word("tema.docx")stampa(lunghezza(p), "paragrafi")tabelle_word(percorso)#
Le tabelle di un documento .docx o .odt; ogni tabella è una lista di righe di testi.
per ogni riga in tabelle_word("orario.docx")[0] fai stampa(riga) finescrivi_word(percorso, testo, titolo = nulla)#
Crea un documento Word (.docx) o LibreOffice (.odt) da un testo semplice.
Nel testo: una riga vuota separa i paragrafi; # Titolo, ## Sottotitolo; righe che iniziano con - (punti) o 1. (numeri) formano un elenco; righe come | Nome | Voto | una tabella;  un'immagine; --- una nuova pagina; **grassetto** e *corsivo*. Senza estensione aggiunge ".docx". Restituisce il percorso del file.
scrivi_word("invito.docx", "# Festa!\n\nSabato alle **16**, porta un amico.")sostituisci_in_word(percorso, sostituzioni, uscita = nulla)#
Sostituisce dei testi in un .docx, lasciando intatta la grafica.
sostituzioni è un dizionario: testo da cercare -> testo nuovo. Cerca anche nelle intestazioni e nei piè di pagina. Scrive il risultato in uscita (senza uscita cambia il file stesso) e restituisce quante sostituzioni ha fatto.
sostituisci_in_word("modello.docx", {"<<nome>>": "Ada"}, "lettera_ada.docx")stampa_unione(modello, righe, uscita)#
Crea una lettera (o un attestato...) per ogni riga di una tabella.
modello è un file .docx, .txt, .md o .html, oppure direttamente un testo, con i campi scritti come <<nome>> (o «nome»). righe è una lista di dizionari o un file .xlsx, .ods, .csv. Se uscita contiene un campo ("lettere/lettera_<<nome>>.pdf") crea un file per riga, altrimenti un solo file con una pagina per riga. Il formato viene dall'estensione (.docx, .odt, .pdf, .html, .md, .txt). Restituisce la lista dei file creati.
stampa_unione("Cara <<nome>>, sei invitata!", leggi_excel("amici.xlsx"), "inviti.pdf")nuovo_documento(titolo = nulla)#
Un documento vuoto da riempire e poi salvare in Word, PDF, LibreOffice o HTML.
Metodi: aggiungi_titolo(testo, livello), aggiungi_paragrafo(testo, allinea), aggiungi_elenco(voci, numerato), aggiungi_tabella(righe), aggiungi_immagine(percorso, larghezza), aggiungi_interruzione_pagina() e salva(percorso): il formato viene dall'estensione (.docx, .odt, .pdf, .html, .md, .txt).
variabile d = nuovo_documento("Gita")d.aggiungi_paragrafo("Si parte alle **8**.")d.salva("gita.pdf")scrivi_pdf(percorso, testo, titolo = nulla)#
Crea un PDF (A4) da un testo semplice, con titoli, elenchi e tabelle.
Il testo si scrive come in scrivi_word: # Titolo, - punto, | a | b |, **grassetto**, --- per una pagina nuova,  per un'immagine. Le pagine sono numerate in basso.
scrivi_pdf("ricetta.pdf", "# Pancake\n\n- 2 uova\n- 200 g di farina")leggi_pdf(percorso, pagine = nulla)#
Il testo di un PDF (di tutte le pagine o solo di quelle scelte).
pagine può essere un numero (da 1), una lista o un testo come "1-3, 5". Le pagine sono separate da una riga vuota. I PDF fatti da foto o da scanner non hanno testo (serve un programma OCR).
stampa(leggi_pdf("contratto.pdf", 1))conta_pagine_pdf(percorso)#
Quante pagine ha un PDF.
stampa(conta_pagine_pdf("libro.pdf"), "pagine")info_pdf(percorso)#
Un dizionario con le informazioni di un PDF.
Chiavi: "pagine", "titolo", "autore", "oggetto", "parole_chiave", "programma", "creato", "modificato" (date o nulla), "larghezza_mm" e "altezza_mm" (della prima pagina), "protetto" (vero se cifrato), "versione".
variabile i = info_pdf("tesi.pdf")stampa(i["pagine"], i["titolo"])unisci_pdf(sorgenti, uscita)#
Unisce più PDF, uno dopo l'altro, in un PDF nuovo; restituisce quante pagine ha.
unisci_pdf(["copertina.pdf", "compiti.pdf"], "consegna.pdf")estrai_pagine_pdf(percorso, pagine, uscita)#
Copia alcune pagine di un PDF in un PDF nuovo, nell'ordine chiesto.
pagine è un numero (da 1; -1 è l'ultima), una lista di numeri o un testo come "1-3, 5". Restituisce quante pagine ha il PDF nuovo.
estrai_pagine_pdf("libro.pdf", "10-12", "capitolo2.pdf")ruota_pagine_pdf(percorso, gradi = 90, uscita = nulla, pagine = nulla)#
Gira le pagine di un PDF (90, 180, 270 gradi).
I gradi positivi girano in senso orario, quelli negativi al contrario. Senza pagine gira tutte le pagine; senza uscita cambia il file stesso. Restituisce il percorso del file scritto.
ruota_pagine_pdf("scansione.pdf", 90, "dritta.pdf")immagini_in_pdf(immagini, uscita)#
Mette delle foto JPEG o PNG in un PDF, una per pagina; restituisce quante pagine.
Ogni foto riempie una pagina A4 (verticale o orizzontale, come la foto). Utile per le pagine fotografate.
immagini_in_pdf(["pagina1.jpg", "pagina2.jpg"], "compito.pdf")cerca_in_pdf(percorso, testo)#
Dove compare un testo in un PDF; restituisce una lista di dizionari.
Ogni risultato ha "pagina" (da 1) e "riga" (la riga intera che contiene il testo). Non guarda maiuscole e minuscole. Se il testo non c'è restituisce una lista vuota.
per ogni t in cerca_in_pdf("contratto.pdf", "scadenza") fai stampa(t["pagina"], t["riga"]) finedividi_pdf(percorso, cartella)#
Fa un PDF per ogni pagina, dentro una cartella (la crea se manca).
I file si chiamano come l'originale con il numero della pagina: "libro_001.pdf", "libro_002.pdf"... Restituisce la lista dei file creati.
dividi_pdf("scansioni.pdf", "pagine")leggi_fogli_excel(percorso, intestazione = vero)#
Tutti i fogli di un file .xlsx o .ods in un dizionario.
Le chiavi sono i nomi dei fogli, i valori le righe (come in leggi_excel).
per ogni nome, righe in leggi_fogli_excel("scuola.xlsx") fai stampa(nome, lunghezza(righe)) finetabella_in_html(righe, titolo = nulla, intestazione = nulla, classe = nulla)#
Il codice HTML (<table>...) di una tabella.
righe è una lista di dizionari (le chiavi diventano le colonne) o di liste, come in scrivi_excel. I testi sono protetti e i numeri allineati a destra; con titolo la tabella ha una didascalia. intestazione (vero o falso) dice se la prima riga di una lista di liste è l'intestazione: se manca, Leo lo capisce da solo (prima riga tutta di testi). classe aggiunge class="..." per lo stile CSS. Per un file .html completo usa converti_tabella.
scrivi_file("voti.html", tabella_in_html(leggi_excel("voti.xlsx"), "Voti", classe = "voti"))converti_tabella(sorgente, destinazione, titolo = nulla)#
Porta una tabella da un formato a un altro.
sorgente è un file (.xlsx, .ods, .csv, .tsv, .json, oppure la prima tabella di un .docx/.odt) o direttamente una lista di righe. destinazione decide il formato: .xlsx, .ods, .csv, .tsv, .json, .html, .md, .txt, .docx, .odt o .pdf. Con titolo i documenti hanno un titolo sopra la tabella. Restituisce il percorso del file scritto.
converti_tabella("voti.xlsx", "voti.pdf", "Voti della 3A")apri_documento(percorso)#
Apre un documento (.docx, .odt, .md, .txt o .pdf) come documento, per aggiungere e risalvare.
Si tengono titoli, paragrafi, elenchi e tabelle (non la grafica). Poi si usano i metodi di nuovo_documento (aggiungi_paragrafo, salva...).
variabile d = apri_documento("verbale.docx")d.aggiungi_paragrafo("Firmato: Ada")d.salva("verbale_firmato.pdf")converti_documento(sorgente, destinazione)#
Trasforma un documento in un altro formato; restituisce il percorso scritto.
Legge .docx, .odt, .md, .txt e .pdf (solo il testo); scrive .docx, .odt, .pdf, .html, .md o .txt, secondo l'estensione di destinazione. Si tengono titoli, paragrafi, elenchi e tabelle.
converti_documento("tema.docx", "tema.pdf")Oggetto «documento»
Un documento da riempire e poi salvare in .docx, .odt, .pdf, .html, .md o .txt.
| Proprietà | Significato |
|---|---|
elementi | |
testo | |
titolo |
.aggiungi_elenco(voci, numerato = falso)#
Aggiunge un elenco puntato (o numerato con numerato = vero).
d.aggiungi_elenco(["pane", "latte", "uova"]).aggiungi_immagine(percorso, larghezza = nulla)#
Aggiunge un'immagine JPEG o PNG (GIF solo per Word e .odt).
larghezza è in centimetri (al massimo 17, la larghezza della pagina); senza, l'immagine tiene la sua misura, ridotta se non ci sta.
d.aggiungi_immagine("foto.jpg", 8).aggiungi_interruzione_pagina()#
Quello che viene dopo comincia su una pagina nuova.
d.aggiungi_interruzione_pagina()d.aggiungi_titolo("Capitolo 2").aggiungi_paragrafo(testo, allinea = "sinistra")#
Aggiunge un paragrafo; **grassetto** e *corsivo* funzionano.
allinea può essere "sinistra", "centro", "destra" o "giustificato". "\n" va a capo nello stesso paragrafo.
d.aggiungi_paragrafo("Ciao **Ada**, ci vediamo *domani*.").aggiungi_tabella(righe, intestazione = nulla)#
Aggiunge una tabella da una lista di dizionari o di liste.
Con i dizionari le chiavi diventano la riga d'intestazione (in grassetto); con le liste la prima riga è l'intestazione se contiene solo testi (oppure scegli tu con intestazione = vero o falso).
d.aggiungi_tabella([{"nome": "Ada", "voto": 9}, {"nome": "Bruno", "voto": 7}]).aggiungi_titolo(testo, livello = 1)#
Aggiunge un titolo (livello 1, 2 o 3; 0 è il titolo del documento).
d.aggiungi_titolo("Capitolo 1")d.aggiungi_titolo("Parte A", 2).salva(percorso)#
Salva il documento; il formato viene dall'estensione (.docx, .odt, .pdf, .html, .md, .txt).
Senza estensione salva in Word (.docx). Restituisce il percorso del file.
d.salva("relazione.docx")d.salva("relazione.pdf")