下面是我的代码,我正在合并~分隔的文件,并将它们保存为xlsx格式,但遇到错误
align_format = workbook.add_format() AttributeError:'Workbook‘对象没有'add_format’属性
我使用的是Python 3.6.8
from pandas import ExcelWriter
import os
import sys
import glob
import pandas as pd
import openpyxl
def testfunc(target_filename):
table_list = []
for filename in glob.glob("E:\\dev\\Python_Dev\\Python368\\*.dat"):
print(filename)
table_list.append(filename)
writer = ExcelWriter(target_filename, engine=None)
for sheet in table_list:
(_, f_name) = os.path.split(sheet)
(f_short_name, _) = os.path.splitext(f_name)
df = pd.read_csv(sheet, delimiter='~', encoding='unicode_escape')
df.to_excel(writer, sheet_name=f_short_name, index=False)
workbook = writer.book
worksheet = writer.sheets[f_short_name]
align_format = workbook.add_format()
align_format.set_align('center')
writer.save()
writer.close()
if __name__ == "__main__":
test_func(sys.argv[1])
发布于 2021-05-19 10:54:02
pip install xlsxwriter
已修复此问题。
发布于 2021-05-19 22:37:23
有几个答案解释了如何修复这个问题(pip install xlsxwriter
),但没有解释为什么它首先会失败。原因是您没有指定要使用的ExcelWriter引擎:
writer = ExcelWriter(target_filename, engine=None)
在这种情况下,Pandas将默认安装任何xlsx编写器模块。选项依次为xlsxwriter
和openpyxl
。在您的代码中进一步使用workbook.add_format()
,这是一个xlsxwriter
方法。因此,如果您希望使用该模块的语法,则应显式指定引擎:
writer = ExcelWriter(target_filename, engine='xlsxwriter')
如果没有安装xlsxwriter
,这仍然会失败,但至少对于用户/维护者来说,原因会更清楚。
发布于 2020-08-03 20:17:37
我在这里看到了您正在寻找的方法: XlsxWriter,但在pandas ExcelWriter上没有。
我建议您确保该包可用并且正在使用它。
https://stackoverflow.com/questions/63115612
复制相似问题