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.
  • .search: cerca un elemento per nome nella slide corrente
  • .seek: cerca un elemento nella slide corrente, accetta espressione regolari per la ricerca del nome
  • .copy_from(nslide, name, top, left): copia e incolla una shape da una pagina della presentazione nella slide corrente
  • .copy(nslide, name): copia una shape dalla pagina indicata
  • .paste(top, left): incolla la shape presente nella clipboard nella slide corrente
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
_images/analyze_output.png

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
_images/shape_info.png

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, format): imposta il dato nella cella. Opzionalemte imposta anche il formato. 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
5
x = px.chart("Chr_20")
x.set_column(2, (1..11).to_a)
x.data_cell(1, 3) << "99"
x.write(2, 7, 3455, "_-* #.##0_-;-* #.##0_-")
x.quit