自動建立 Powerpoint 時出現 Python 錯誤大家好,
我有一個 JSL 腳本,可以在各個視窗中輸出大約 10 個圖形。 我正在研究一種將每個圖表輸入到幻燈片中的方法。 由於我看到的圖片很複雜,有一種方法可以使用 python 的 python-pptx 包來完成此操作,我可以創建帶有標題的所有幻燈片,但根本無法將圖片放入 powerpoint 中。 下面是我正在使用的程式碼片段,註解掉的行是它中斷的行。 我知道這一點,因為註解掉的行將圖片和 powerpoint 放在正確的資料夾中並無縫打開。 但是,當取消註解時,圖片會被儲存,但將 ppt 儲存到資料夾的以下行永遠不會發生,同樣 Jmp 表示它無法開啟不存在的檔案。 我已經嘗試了從使用 f 字串到字串串聯來獲取 ppt 中的圖片的所有方法,但我無法。 任何幫助將非常感激。 謝謝!
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);上面的作品沒有增加圖片。
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);未註解的 add_picture 則不會。
謝謝,
尼爾
自動化和腳本編寫資料存取數據探索和視覺化視窗回覆:自動建立 Powerpoint 時出現 Python 錯誤您是否嘗試過像Python程式碼一樣運行它而不使用JMP(這是Python還是JMP問題)? 有錯誤訊息嗎? 我最初的猜測是路徑可能建錯了。 據我所知,在Python中使用通常是個好主意os.path — 常見路徑名操作 — Python 3.11.5 文檔
回覆:自動建立 Powerpoint 時出現 Python 錯誤另外@jthi註:將 python 程式碼放入 python try 區塊中並捕獲並處理任何異常。 JMP 對異常的處理向您隱藏了它。 在 JMP 之外運行 python 程式碼也可以。
使用 Python Selenium 編寫瀏覽器腳本顯示了我發現有用的 try/ except 的使用模式;它返回RC作為任一好的或異常訊息文字。 把進口try 中的語句確實很有用。
回覆:自動建立 Powerpoint 時出現 Python 錯誤這(突出顯示)看起來對我來說可能是問題。也許重命名變數“height”以避免與參數“height”衝突

回覆:自動建立 Powerpoint 時出現 Python 錯誤您好,我很欣賞您的回覆。 您刪除高度的解決方案是我意識到腳本錯誤的兩件事之一。 感謝您對我的監督提出的建議!
回覆:自動建立 Powerpoint 時出現 Python 錯誤感謝您的建議。 我將研究更多方法來透過 jmp 捕獲 python 拋出的異常/錯誤。 我很感激你的幫忙!
回覆:自動建立 Powerpoint 時出現 Python 錯誤您好,Jarmo,您認為路徑錯誤的建議確實是上面程式碼的兩個錯誤之一。 我沒有意識到文件路徑末尾的 \" 實際上阻止了程式碼將文件正確保存在正確的位置。 謝謝您的幫忙!
回覆:自動建立 Powerpoint 時出現 Python 錯誤謝謝大家的建議與協助! 透過僅使用 python 進行故障排除,我意識到檔案路徑和高度變數都阻止了檔案保存並將圖片匯入到 ppt 中。 下面是工作程式碼,以防有人需要引用它!
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);