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()
输出:
我正在尝试使用 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()
输出: