You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

openpyxl 2.5.1调用dataframe_to_rows报错:utils无dataframe属性

解决openpyxl 2.5.1中dataframe_to_rows导入报错的问题

这个问题我之前也碰到过,本质就是openpyxl版本差异导致的函数位置变更——你用的2.5.1版本还没把dataframe_to_rows放到openpyxl.utils.dataframe子模块里,调整下导入路径就能解决:

具体解决步骤

  • 修正导入语句:
    把你原来的代码:
    from openpyxl.utils.dataframe import dataframe_to_rows
    
    改成:
    from openpyxl.utils import dataframe_to_rows
    
  • 验证版本兼容性:openpyxl 2.5.1建议搭配pandas 0.23.x~0.25.x版本使用,避免因版本不匹配出现其他隐性问题。

完整可运行示例

import pandas as pd
from openpyxl import Workbook
from openpyxl.utils import dataframe_to_rows

# 生成示例DataFrame
df = pd.DataFrame({
    '姓名': ['张三', '李四', '王五'],
    '年龄': [25, 30, 28],
    '城市': ['北京', '上海', '广州']
})

# 创建Excel工作簿和工作表
wb = Workbook()
ws = wb.active

# 将DataFrame转换为行并写入Excel
# index=True保留索引列,header=True保留表头
for row in dataframe_to_rows(df, index=True, header=True):
    ws.append(row)

# 保存文件
wb.save('导出结果.xlsx')

补充说明

如果之后你升级openpyxl到2.6及以上版本,dataframe_to_rows就会被移到openpyxl.utils.dataframe子模块下,那时你最初的导入语句就能正常使用了——这也是为什么新文档里是那个路径,但你的旧版本不支持的核心原因。

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

火山引擎 最新活动