Presentazioni PPTX¶
MODULO AGGIUNTIVO
pptx permette di aprire e modificare una presentazione in formato pptx (PowerPoint).
.edit filename|:active: apre il file pptx e restituisce un oggetto che permette di manipolare la presentazione. Utilizzando :active al posto del nome del file, verrà utilizzato il file correntemente aperto in PowerPoint.
Parametri:
- :outfile => outfilename: (opzionale) indica il nome del file usato per salvare la presentazione.
- :back => true|false: (opzionale) crea una copia di backup quando salva il file.
Suggerimento
La presentazione può essere modificata utilizzando direttamente i valori contenuti in un file di dati oppure i valori restituiti dalle tabelle e da xtab.
Un file pptx può esere utilizzato come modello per generare varie presentazioni conteneti i dati aggiornati e/o i dati di specifici target o unità di analisi dell’indagine.
- .save filename: salva la presentazione. Se non specificato filename utilizza il parametro :outfile di edit. Se nessuno dei due parametri è stato specificato, sovrascrive il file pptx originario.
- .pdf filename: esporta la presentazione in formato PDF. Se non specificato filename utilizza il parametro :outfile di edit.
- .close: chiude la presentazione.
- .quit: chiude PowerPoint.
- .save_and_reload: salva la presentazione, la chiude, chiude PowerPoint e la riapre.
- .path: restituisce il percorso del file pptx.
- .name: restituisce il nome del file pptx.
- .outfile: restituisce il nome del file di output.
- .outfile=name: modifica il nome del file di output.
- .replace(search, replace): cerca e sostituisce il contenuto nei box di testo (non raggruppati) in tutte le slide della presentazione.
1 2 3 4 5 6 7 8 | px = pptx.edit 'Template', :outfile => 'Presentazione1'
...
px.save
px.close
px.quit
|
Slides¶
Ogni pagina della presentazione è una slide. Impostando una slide, le successive istruzioni relative agli shapes fanno riferimento a quella slide.
- .size: restituisce il numero totale di slides.
- .slides: restituisce la collezioni di slide. Possono essere applicati i metodi each, each_with_index, ecc.
- .dup(n): duplica la slide n subito dopo l’originale, la imposta come slide corrente e la restituisce.
- .insert: inserisce nella presentazione attiva delle slide proveniente da un’altra presentazione.
- :at => n: la posizione in cui inserire le slide. Se non indicata, le slide verranno iserite in fondo.
- :file => "filename": il nome della presentazione da cui copiare le slide.
- :slides => []: le slide da copiare. Se non indicate verranno copiate tutte le slide presenti.
- .master: imposta la slide attiva sulla slide master e la restituisce.
- .slide(number): imposta la slide attiva numero number e la restituisce.
- .delete: elimina la slide.
- .replace(search, replace): cerca e sostituisce il contenuto nei box di testo (non raggruppati) nella slide. search può essere una stringa o un’espressione regolare.
- .to_image: converte tutti gli shape della slide in immagini.
- .shape(name|id, options={}): restituisce lo shape di qualsiasi tipo per nome o id. Le varianti textbox (o text), table e chart, oltre a rendere più chiaro lo script, generano un errore se lo scape non è del tipo indicato.
- .find(:textbox|:table|:chart, n|:first|:last): restituisce lo shape del tipo indicato secondo l’ordine dato dalla posizione rispetto al bordo superiore, al bordo sinistro e all’asse z. Nel secondo parametro :first restituisce il primo shape, :last l’ultimo. Sono disponibili anche le varianti .find_textbox (o .find_text), .find_table e .find_chart.
1 2 3 4 5 6 7 8 9 10 11 12 13 | px.master
px.replace("Gennaio - Marzo 2018", "Aprile - Giugno 2018")
px.slide(1)
px.shape(12).name = "Chart_1_1"
px.shape(24).name = "Chart_1_2"
px.shape(16).name = "Table_CS"
px.slide(3)
px.table(17).name = "Table_sociodemo"
px.slides.insert :at => 7, :file => "Overall", :slides => [3,4,8]
px.slides.dup 10
|
- .analyze :slides => number|range|list, :like => text|regex, :show => true|false: stampa nel log una tabella per ciascuna slide con gli elementi (shape) trovati al suo interno.
- :slide (opzionale) permette di limitare l’output a una o più slide.
- :like (opzionale) permette di limitare l’output a una o più shape il cui nome inizia per la stringa indicata o è conforme all’espressione regolare.
- :show (opzionale) stampa all’interno di ciascuno shape il suo ID e il nome.
px.analyze :slide => 1
Shapes¶
I diversi elementi che compongono una slide sono denominati genericamente shape. Tipi di shape più specifici sono quelli che contengono testo (textbox), tabelle (table) e grafici (chart).
- .info: stampa nel log le informazioni e i dati relativi allo shape.
- .name = nuovo_nome: rinomina lo shape.
- .data: restituisce i dati dello shape.
- .dims: restituisce le informazioni relative alle dimensioni dei dati.
- .hide: nasconde lo shape.
- .show: rende visibile lo shape.
- .delete: elimina lo shape.
- .refresh: ricarica le informazioni e i dati dello shape.
- .top: restituisce la posizione dall’alto.
- .left: restituisce la posizione da sinistra.
- .width: restituisce la larghezza.
- .height: restituisce l’altezza.
- .copy(top, left): fa una copia dello shape e lo sposta alle coordinate top e left.
- .to_image: converte lo shape in immagine.
- .quit: chiude lo shape.
1 2 3 | triangle = px.shape(13)
triangle.rotation # => 0
triangle.rotation = 180
|
px.shape(24).info
Suggerimento
Si consiglia di usare i metodi analyze e info solo nel lavoro di costruzione dello script e non nello script finale di produzione.
textbox¶
.textbox(name|id) restituisce l’elemento di testo indicato.
Parametri:
- name|id: il nome o l’id dello shape.
Metodi:
- .text: restituisce il testo.
- .data: restituisce il testo. Se possibile lo converte in numero.
- .dims: restituisce la lunghezza del test.
- <<(text): assegna il testo allo shape.
- .replace(search_text|regex, replace): cerca nel testo dello shape e sostituisce la prima occorrenza trovata. search può essere una stringa o un’espressione regolare. Nel caso di espressione regolare, utilizzando un gruppo verrà sostituito solo il gruppo (il primo).
- .mreplace(search_text, replace): sostituisce tutte le occorrenze trovate. Non è possibile usare espressioni regolari.
1 2 | px.textbox("Titolo 1") << "Nuovo titolo"
px.shape("sc01").replace(/(\d+,\d+)%/, "77,7")
|
table¶
.table(name|id, :data => [row, col], :empty => :skip|:keep) restituisce la tabella indicata.
Parametri:
- name|id: il nome o l’id dello shape.
- :data: permette di specificare il numero della prima riga di dati e il numero della prima colonna di dati.
- :empty: permette di escludere (:skip il default) o di includere (:keep) dai dati le righe o colonne vuote.
Metodi:
- .dims: restituisce il numero di righe e il numero di colonne.
- .matrix: restituisce l’intera matrice della tabella.
- .data o .rows: restituisce la marice delle righe dei dati.
- .columns: restituisce la marice delle colonne dei dati.
- .column(n): restituisce la colonna numero n dei dati.
- .set_column(n, data_vector): imposta i dati della colonna n.
- .row(n): restituisce la riga numero n dei dati.
- .set_row(n, data_vector): imposta i dati della riga n.
- <<(value): assegna il valore alla cella (1,1).
- .cell(nrow, ncol): restituisce la cella indicata.
- .data_cell(nrow, ncol): restituisce la cella di dati indicata.
- << o .value=: imposta il valore della cella.
- fcolor=[red, green, blue]: imposta il colore del testo.
- bcolor=[red, green, blue]: imposta il colore dello sfondo.
1 2 3 4 | x = px.table("Table CS", data: [4, 5])
x.set_column(3, [1, 2, 3, 4, 5, 6.5, 7, 8, 9, 10, 11, 12])
x.cell(1,1).bcolor=[146,208,80]
x.cell(1,2).bcolor=[255,0,0]
|
chart¶
.chart(name|id) restituisce il grafico indicato.
Parametri:
- name|id: il nome o l’id dello shape.
Metodi:
- .dims: restituisce il numero di righe e il numero di colonne della tabella dei dati.
- .title: restituisce il titolo del grafico.
- .title=: modifica il contenuto del titolo del grafico.
- .corner: restituisce il contenuto del corner della tabella dei dati.
- .corner=: modifica il contenuto del corner della tabella dei dati.
- .header: restituisce le intestazioni delle colonne di dati.
- .set_header=[]: modifica le intestazioni delle colonne di dati.
- .labels: restituisce le etichette delle righe di dati.
- .set_labels=[]: modifica le etichette delle righe di dati.
- .matrix: restituisce l’intera matrice della tabella.
- .data o .rows: restituisce la marice delle righe dei dati.
- .columns: restituisce la marice delle colonne dei dati.
- .column(n): restituisce la colonna numero n dei dati.
- .set_column(n, data_vector, :force=>true|false): imposta i dati della colonna n. Il parametro :force permette di disabilitare il cotrollo sulla coerenza con il numero di serie e il numero di valori presenti nella tabella.
- .row(n): restituisce la riga numero n dei dati.
- .set_row(n, data_vector, :force=>true|false): imposta i dati della riga n.
- .cell(nrow, ncol): restituisce la cella indicata.
- .data_cell(nrow, ncol): restituisce la cella di dati indicata.
- << o .value=: imposta il valore della cella.
- write(row, col, value): imposta il dato nella cella. E’ un metodo più diretto di scrittura dei dati da preferire in caso di debba scrivere più di una serie di dati.
1 2 3 4 | x = px.chart("Chr_20")
x.set_column(2, (1..11).to_a)
x.data_cell(1,3) << "99"
x.quit
|