Python错误: AttributeError: ‘Worksheet‘ object has no attribute ‘set_column‘ 解决办法
问题描述:Python使用pandas库实现MySQL查询数据库查到的数据导出Excel表,在设定列宽时报错:AttributeError: 'Worksheet' object has no attribute 'set_colume' 代码如下import pandas as pdimport pandas.io.formats.exceldef downloadExcel():# 查询数据库
问题描述:
Python使用pandas库实现MySQL查询数据库查到的数据导出Excel表,在设定列宽时报错:AttributeError: 'Worksheet' object has no attribute 'set_column'
代码如下
import pandas as pd
import pandas.io.formats.excel
def downloadExcel():
# 查询数据库的函数实现部分省略
sql = "SELECT * FROM XIAOBAIBAI_LOG WHERE ID='666'"
resList = mysqlData.search(sql) # resList为查询到的结果
cols = mysqlData.cur.description
col = []
for c in cols:
col.append(c[0]) # 提取数据库的columns作为每列标题
df = pd.DataFrame(list(resList), columes=col)
pandas.io.formats.excel.header_style = None
writer = pd.ExcelWriter(r"output/XIAOBAIBAI_LOG.xls")
df.to_excel(writer, sheet_name='XIAOBAIBAI_LOG')
worksheet = writer.sheets['XIAOBAIBAI_LOG']
worksheet.set_column("A:A",15) # 设置A列宽度为15
writer.save()
writer.close()
解决方案:
看了很多解决 AttributeError: 'Worksheet' object has no attribute 'set_column'
错误的方案,尝试了都没有解决,结果发现一个小细节,原因竟然是Excel导出后缀的问题,之前对Excel的操作都保存为 .xls
格式,也没有问题,但是使用 set_column
方法出现报错了,把后缀改为.xlsx
报错就没有了。
writer = pd.ExcelWriter(r"output/XIAOBAIBAI_LOG.xlsx")
其他可能原因分析:
后续这里会陆续贴一些其他情况导致这个报错的解决方案
1、未安装Xlsxwriter,可参考:
AttributeError:“工作表”对象没有属性“ set_column”
2、在最新版的openpyxl模块中已删除报错对应的功能或换了方法名,可参考:
openpyxl no attribution error
3、openpyxl版本问题、安装包缺失问题,参考文章:
Attributeerror: ‘worksheet’ object has no attribute 'insert_cols’的解决办法
更多推荐
所有评论(0)