自动创建 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);