Python操作电子表格:如何跳过不存在的PNG图片仅留空单元格?
解决方法:检查文件存在性后再添加图片
最简的实现方式就是先判断目标图片文件是否存在,仅当文件存在时才执行创建图片对象、设置属性及添加到工作表的操作;文件不存在时直接跳过,对应单元格自然保持为空。
修改后的代码示例
假设你使用的是openpyxl库(从代码里的Image和Alignment推断),可以结合pathlib模块(Python 3.4+自带)来简洁地实现文件存在性检查:
from pathlib import Path from openpyxl.drawing.image import Image from openpyxl.styles import Alignment # 合并单元格的操作不受图片存在性影响,保留原逻辑 ws.merge_cells('A1:E3') # 处理logo图片 logo_path = Path("./logo.png") if logo_path.exists(): logo = Image(str(logo_path)) logo.width = 500 logo.height = 120 ws.add_image(logo, 'A1') # 处理element图片 element_path = Path("./element.png") if element_path.exists(): element = Image(str(element_path)) element.width = 140 element.height = 140 element.alignment = Alignment(horizontal="left", vertical="center") ws.add_image(element, 'E1')
逻辑说明
- 用
Path对象的exists()方法可以直观判断文件是否存在,比传统的os.path.exists写法更简洁现代 - 只有当文件存在时,才会执行后续的图片初始化、属性设置和添加操作;不存在时直接跳过,对应单元格不会被任何图片填充,保持为空
- 原代码中合并单元格的操作不需要修改,因为它和图片是否存在无关
内容的提问来源于stack exchange,提问作者ASAS
相关产品推荐
相关产品推荐

