【问题标题】:AttributeError: 'Workbook' object has no attribute 'add_format' using openpyxl engine in append modeAttributeError:“工作簿”对象在附加模式下使用 openpyxl 引擎没有属性“add_format”
【发布时间】:2021-10-10 07:08:06
【问题描述】:

我正在使用 Excelwriteropenpyxl 引擎,因为我想以附加模式打开 excel 文件。 我正在使用附加模式,以便在每次重新运行时清除工作簿中的先前工作表。但是我在使用下面的语法向 excel 添加格式时遇到了这个错误:-AttributeError: 'Workbook' object has no attribute 'add_format'

如何让它与 openpyxl 引擎一起工作

def write_dataframes_to_excel_sheet(dataframes, dir, name,writer):
#with pd.ExcelWriter(f'{dir}/{name}.xlsx', engine='xlsxwriter') as writer:
workbook = writer.book
worksheet = workbook.create_sheet(str(id))
writer.sheets[str(id)] = worksheet

COLUMN = 0
row = 0


for df in dataframes:
    #worksheet.write_string(row, COLUMN, df.name)
    row += 1
    df.to_excel(writer, sheet_name=str(id),
                startrow=row, startcol=COLUMN,index=False)
    header_format= workbook.add_format({'bold':True,'fg_color' :'00C0C0C0','border': 1})
    for col_num,value in enumerate(df.columns.values):
        worksheet.write(0,col_num,value,header_format)
        column_len=df[value].astype(str).str.len().max()
        column_len=max(column_len,len(value))+3
        worksheet.set_column(col_num,col_num,column_len)            
    row += df.shape[0] + 3

with pd.ExcelWriter(input_filename, engine='openpyxl',mode='a') as writer:
   write_dataframes_to_excel_sheet(df_array, 'C:/Users/path',input_filename,writer)

【问题讨论】:

  • 阅读您要使用的库的正确文档总是很有用的。
  • 我做到了,我没有得到满足此要求的解决方案。如果你知道,你能帮忙吗

标签: excel pandas openpyxl pandas.excelwriter


【解决方案1】:

AttributeError: 'Workbook' 对象没有属性 'add_format'

add_format() 方法是 xlsxwriter 方法,因此不适用于 openpyxl。您将需要使用等效的 openpyxl 方法。

【讨论】:

  • 您知道如何使用openpyxl 实现它吗?我所看到的只是 openpyxl 中的逐个单元格格式语法。但这里通过df 迭代并写入excel
猜你喜欢
  • 1970-01-01
  • 2018-08-13
  • 2019-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-03
  • 2012-01-14
相关资源
最近更新 更多