Python提取Excel中347个字体名:如何简化重复代码?
批量提取Excel字体名称的优化方案
完全可行,而且用列表存储所有字体名是远比单独定义变量更高效合理的方案——347个单独变量不仅编写繁琐,后续使用和维护也会非常麻烦。
优化后的代码
先修正原代码里的小错误(workbook.rows应为worksheet.rows),再用循环批量提取:
from openpyxl import load_workbook # Excel文件路径 fonts_excel = 'Fonts.xlsx' # 加载工作簿和目标工作表 workbook = load_workbook(fonts_excel) worksheet = workbook['Sheet1'] # 初始化列表存储所有字体名 font_list = [] # 遍历所有行和单元格,提取非空值 for row in worksheet.rows: for cell in row: if cell.value is not None: font_list.append(cell.value) # 验证提取结果 print(f"成功提取 {len(font_list)} 个字体名称")
如果追求代码简洁,也可以用列表推导式一行完成:
font_list = [cell.value for row in worksheet.rows for cell in row if cell.value is not None]
关键说明
- 用列表替代单独变量:列表可通过索引(如
font_list[0]、font_list[1])访问单个字体名,也能轻松遍历、筛选所有字体,完全满足后续应用需求 - 批量遍历:通过嵌套循环一次性处理所有行和单元格,彻底避免重复编写几十上百个相同的for循环
- 空值过滤:加入
if cell.value is not None可跳过Excel中的空单元格,保证列表里只存有效的字体名称
内容的提问来源于stack exchange,提问作者Alexander
相关产品推荐
相关产品推荐

