Errore Python nella creazione automatizzata di PowerPointCiao a tutti,
Ho uno script JSL che produce circa 10 grafici nelle singole finestre. Sto lavorando su un modo per inserire ciascun grafico nella propria diapositiva in un powerpoint. A causa della complessità delle immagini che ho visto, c'era un modo per utilizzare il pacchetto python-pptx di Python per ottenere questo risultato e sono in grado di creare tutte le diapositive con un titolo ma non riesco affatto a inserire l'immagine nel PowerPoint. Di seguito è riportato lo snippet di codice con cui sto lavorando e la riga commentata è la riga in cui si interrompe. Lo so poiché la riga commentata inserisce l'immagine e PowerPoint nella cartella giusta e si apre senza problemi. Ma quando l'immagine non viene commentata viene salvata, ma la riga successiva in cui il ppt viene salvato nella cartella del file non avviene mai e allo stesso modo Jmp dice che non può aprire il file inesistente. Ho provato di tutto, dall'uso delle stringhe f alle concatenazioni della stringa per ottenere l'immagine nel ppt, ma non ci riesco. Qualsiasi aiuto sarebbe molto apprezzato. Grazie!
dt = Open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate( Y( :height ), X( :weight ) );
ppt_dir = "C:\Users\neel\Documents\new jmp\";
number = "12345678";
graph holding = H List Box();
graph holding << append(Report(biv));
pic holding = H List Box();
pic holding << append(graph holding << get picture);
pic_file = "example.png";
pic holding << Save Picture(ppt_dir || pic_file);
Python Init();
plog = Python Execute({ppt_dir, number, pic_file}, {img_path, left, top, height},
"\[
from pptx import Presentation
from pptx.util import Inches
img_path = ppt_dir + pic_file
prs = Presentation()
slide_1 = prs.slides.add_slide(prs.slide_layouts[0])
slide_1.shapes.title.text = "Review of " + number
slide_2 = prs.slides.add_slide(prs.slide_layouts[5])
slide_2.shapes.title.text = "Results"
slide_3 = prs.slides.add_slide(prs.slide_layouts[5])
slide_3.shapes.title.text = "Summary"
left = top = Inches(2)
#pad_summary_pic = slide_3.shapes.add_picture(img_path, left, top, height=height)
prs.save(rf"{ppt_dir}{number} Review.pptx")
]\"
);
Python Term();
//Open PPT
ppt = ppt_dir || number || " Review.pptx";
Open(ppt);Sopra funziona senza che venga aggiunta l'immagine.
dt = Open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate( Y( :height ), X( :weight ) );
ppt_dir = "C:\Users\neel\Documents\new jmp\";
number = "12345678";
graph holding = H List Box();
graph holding << append(Report(biv));
pic holding = H List Box();
pic holding << append(graph holding << get picture);
pic_file = "example.png";
pic holding << Save Picture(ppt_dir || pic_file);
Python Init();
plog = Python Execute({ppt_dir, number, pic_file}, {img_path, left, top, height},
"\[
from pptx import Presentation
from pptx.util import Inches
img_path = ppt_dir + pic_file
prs = Presentation()
slide_1 = prs.slides.add_slide(prs.slide_layouts[0])
slide_1.shapes.title.text = "Review of " + number
slide_2 = prs.slides.add_slide(prs.slide_layouts[5])
slide_2.shapes.title.text = "Results"
slide_3 = prs.slides.add_slide(prs.slide_layouts[5])
slide_3.shapes.title.text = "Summary"
left = top = Inches(2)
pad_summary_pic = slide_3.shapes.add_picture(img_path, left, top, height=height)
prs.save(rf"{ppt_dir}{number} Review.pptx")
]\"
);
Python Term();
//Open PPT
ppt = ppt_dir || number || " Review.pptx";
Open(ppt);Questo con add_picture senza commenti no.
Grazie,
Neel
Automazione e scriptingAccesso ai datiEsplorazione e visualizzazione dei datifinestreRi: Errore Python nella creazione automatizzata di PowerPointHai provato a eseguirlo come codice Python senza JMP (è un problema Python o JMP)? Eventuali messaggi di errore? La mia ipotesi iniziale sarebbe che il percorso potrebbe essere costruito in modo errato. Per quanto ne so, in Python di solito è una buona idea usare os.path — Manipolazioni comuni dei nomi di percorso — Documentazione Python 3.11.5
Ri: Errore Python nella creazione automatizzata di PowerPointInoltre @jthi commenti: inserisci il codice Python in un blocco try Python e cattura e gestisci qualsiasi eccezione. La gestione dell'eccezione da parte di JMP te la nasconde. Funzionerà anche l'esecuzione del codice Python al di fuori di JMP.
Script del browser con Python Selenium mostra un modello di utilizzo per la prova/tranne che ho trovato utile; ritorna RC sia come OK o il testo del messaggio di eccezione. Mettere il importare le dichiarazioni all'interno del tentativo sono state davvero utili.
Ri: Errore Python nella creazione automatizzata di PowerPointQuesto (evidenziato) sembra che potrebbe essere il problema per me.Forse rinominare la variabile "altezza" per evitare il conflitto con il parametro "altezza"

Ri: Errore Python nella creazione automatizzata di PowerPointCiao, apprezzo la risposta. La tua soluzione per rimuovere l'altezza è stata una delle due cose che ho capito erano sbagliate nella sceneggiatura. Grazie per il suggerimento alla mia supervisione!
Ri: Errore Python nella creazione automatizzata di PowerPointGrazie per il suggerimento Esaminerò altri modi per rilevare eccezioni/errori generati da Python tramite jmp. Apprezzo l'aiuto!
Ri: Errore Python nella creazione automatizzata di PowerPointCiao Jarmo, il tuo suggerimento che il percorso fosse sbagliato era in effetti una delle due cose sbagliate nel codice sopra. Non mi ero reso conto che \" alla fine del percorso del file impediva effettivamente al codice di salvare correttamente il file nella posizione corretta. Grazie per l'aiuto!
Ri: Errore Python nella creazione automatizzata di PowerPointGrazie a tutti per i suggerimenti e l'aiuto! Attraverso la risoluzione dei problemi utilizzando solo Python mi sono reso conto che sia il percorso del file che la variabile di altezza impedivano il salvataggio del file e l'importazione dell'immagine nel ppt. Di seguito è riportato il codice funzionante nel caso in cui qualcuno abbia mai bisogno di fare riferimento a questo!
dt = Open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate( Y( :height ), X( :weight ) );
ppt_dir = "C:\Users\srejann\Documents";
number = "12345678";
graph holding = H List Box();
graph holding << append(Report(biv));
pic holding = H List Box();
pic holding << append(graph holding << get picture);
pic_file = "example.png";
pic holding << Save Picture(ppt_dir || "\" || pic_file);
Python Init();
plog = Python Execute({ppt_dir, number, pic_file}, {img_path, left, top},
"\[
from pptx import Presentation
from pptx.util import Inches
img_path = ppt_dir + f"\{pic_file}"
prs = Presentation()
slide_1 = prs.slides.add_slide(prs.slide_layouts[0])
slide_1.shapes.title.text = "Review of " + number
slide_2 = prs.slides.add_slide(prs.slide_layouts[5])
slide_2.shapes.title.text = "Results"
slide_3 = prs.slides.add_slide(prs.slide_layouts[5])
slide_3.shapes.title.text = "Summary"
left = top = Inches(2)
pic = slide_3.shapes.add_picture(img_path, left, top)
prs.save(rf"{ppt_dir}\{number} Review.pptx")
]\"
);
Python Term();
//Open PPT
ppt = ppt_dir || "\" || number || " Review.pptx";
Open(ppt);