首页/文章/ 详情

WPS与Office在CAE二次开发中的表格复制差异

3月前浏览2017
二次开发工作内容之一,将提取的结果写入到ppt中,当存在重复内容时,往往只会留下独一无二的一页,其余内容通过复 制幻灯片实现。
在这个过程中,就遇到了一个问题,这个问题是基于Python-pptx模块才会遇到,如果使用pywin32或者twapi基于office句柄的方式来创建,则不会遇到问题。
具体问题就是当使用Python的 python-pptx 库来操作PPTX文件时,如果原始文件是由WPS创建的,对table进行复 制,复 制后的文件,有很大概率会出现无法打开的情况。
上面是问题,下面就是解决方案。
解决方案很简单,就是在 powerpoint里边将表格重新创建就好了,就是这么简单。最开始没有考虑的是不同软件创建表格所导致的问题,一直以为是程序的问题,所以花了时间在程序的角度去解决它。这也是思考问题都角度不同,遂记录一下。
在Python中复制PPTX表格的代码可能如下所示:

























  
from pptx import Presentationfrom pptx.util import Inchesimport copy
ppt = Presentation('path_to_presentation.pptx')
for slide in ppt.slides:    for shape in slide.shapes:        if shape.has_table:            table = shape.table            new_table = copy.deepcopy(table)
           left = Inches(1)            top = Inches(1)            width = Inches(5)            height = Inches(2)            new_shape = slide.shapes.add_table(                rows=len(new_table.rows), cols=len(new_table.columns), left=left, top=top, width=width, height=height            )
           for r in range(len(new_table.rows)):                for c in range(len(new_table.columns)):                    new_shape.table.cell(r, c).text = new_table.cell(r, c).text
ppt.save('path_to_new_presentation.pptx')  
但是这样会丢失样式和空间位置,需要再调整下表格位置和样式信息,或者通过私有方法,直接修改xml结构插入复制的元素实现。



来源:TodayCAEer
二次开发pythonUM
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-09-10
最近编辑:3月前
TodayCAEer
本科 签名征集中
获赞 22粉丝 40文章 257课程 0
点赞
收藏
作者推荐

交流群中的使用HyperWork的问题集锦-1

后续慢慢更新软件使用方面问题分割线-------------1Q:新界面的HyperView在哪里显示当前模型的最大最小值。A:在测量模块下查看Q:曲线编辑时,小数点3位后自动四舍五入了,这个在哪调整啊?A:通过修改全局设置实现显示精度修改Q:reflect不能像以前那样选择几个节点作为镜像平面了吗?A:1)现在同样可以实现三点选择平面,需要点击矢量工具的轴的控制点,然后拖动到目标点,详见视频。2)按住键盘Ctrl键,就可以选择三点即可。Q:在选定的表面施加normalpressure以后,但是不显示。A:通过右键菜单显示。Q:导出inp文件到abaqus后,只能看到set集合,看不到施加的pressureA:当分析类型设置为None,不会导出STEP,需要切换为其他类型。Q:HM2024是不是没有maskbrowser了?A:2024版本取消了maskbrowser,功能已经集成在modelbrowser。来源:TodayCAEer

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈