You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何结合列表使用.format()?Excel转图片循环报错求助

解决excel2img循环导出图片时的范围定位失败问题

原始代码与问题描述

用户尝试通过循环遍历filelist中的工作表名称,批量将Excel工作表导出为图片,但执行时出现报错:

Exception: Failed locating range '{}'!A1:HO29

原始代码如下:

import excel2img
import os 

filelist = [
'1R 1R 1R',
'24 54 994',
'9d 13 885',
]

file_name = "C:/Users/3315/Desktop/fdifndfd.xlsx"
img_name ='C:/Users/3315/Desktop/Weekly/company/{}.png' .format(filelist[1])
excel2img.export_img(file_name, img_name, "", "'{}'!A1:HO29") .format(filelist[1])

错误原因

问题出在format()方法的调用位置错误:你把format(filelist[1])写在了excel2img.export_img()方法调用的末尾,这会导致export_img的第三个参数(范围字符串)还是未被替换的'{}'!A1:HO29,程序自然找不到名为{}的工作表,从而抛出定位失败的异常。

修正后的代码

将format()正确应用到需要替换的字符串上,结合循环实现批量导出:

import excel2img
import os 

filelist = [
'1R 1R 1R',
'24 54 994',
'9d 13 885',
]

file_name = "C:/Users/3315/Desktop/fdifndfd.xlsx"
# 遍历列表中的每个工作表名称
for sheet_name in filelist:
    # 生成对应图片路径
    img_name = 'C:/Users/3315/Desktop/Weekly/company/{}.png'.format(sheet_name)
    # 生成正确的范围字符串,先替换再传入export_img
    range_str = "'{}'!A1:HO29".format(sheet_name)
    # 调用导出方法
    excel2img.export_img(file_name, img_name, "", range_str)

关键说明

  • 要确保range_str在传入export_img之前就完成字符串替换,让它变成类似'1R 1R 1R'!A1:HO29的有效工作表范围格式。
  • 循环遍历filelist时,直接用每个元素作为工作表名称,实现批量处理逻辑。

内容的提问来源于stack exchange,提问作者pynoooob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 13:20:50