add_format xlsxwriter 没有按预期工作

add_format not working as expected with xlsxwriter

我正在尝试使用 pandas 和 xlsxwriter

向 excel 文件添加标题

worksheet.merge_range merge_format 未按预期工作。

df = pd.DataFrame.from_records(pd.json_normalize(data))
writer = pd.ExcelWriter("teste12.xlsx", engine='xlsxwriter')
df.to_excel(writer, sheet_name=nome_tabela, index=False, startcol=0, startrow=5)
workbook = xlsxwriter.Workbook(writer)
merge_format = workbook.add_format()
merge_format.set_border(True)
merge_format.set_bold(True)
merge_format.set_align("center")
merge_format.set_align("vcenter")
merge_format.set_font_size(20)
worksheet = writer.sheets[nome_tabela]
worksheet.merge_range(0,0,3,6,"Test", merge_format)
writer.save()

我也尝试使用 merge_format 作为文档示例:

merge_format = workbook.add_format({
'bold': 1,
'border': 1,
'align': 'center',
'valign': 'vcenter',
'fg_color': 'yellow',
'font_size' : 20})

在这两种情况下,粗体、边框和对齐都按预期工作。 font_size、valign 和 fg_color 不起作用。

我做错了什么???

问题是您正在用 xlsxwriter.Workbook() 创建的新工作簿覆盖 Pandas 创建的工作簿。

获取 Pandas 创建的工作簿的正确方法显示在 Working with Python Pandas and XlsxWriter 和下面的工作示例中:

import pandas as pd


nome_tabela = 'Sheet1'

df = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]})

writer = pd.ExcelWriter("teste12.xlsx", engine='xlsxwriter')
df.to_excel(writer, sheet_name=nome_tabela, index=False, startcol=0, startrow=5)

# Get the Pandas created workbook.
workbook  = writer.book
merge_format = workbook.add_format()

merge_format.set_border(True)
merge_format.set_bold(True)
merge_format.set_align("center")
merge_format.set_align("vcenter")
merge_format.set_font_size(20)

worksheet = writer.sheets[nome_tabela]

worksheet.merge_range(0, 0, 3, 6, "Test", merge_format)
writer.save()

输出: