python - add_format 与 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()
.
使用 Python Pandas 和 XlsxWriter以及下面的工作示例中显示了获取 Pandas 创建的工作簿的正确方法:
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()
输出:
推荐阅读
- python - How to log-in to site and Scrape with Python 3
- php - 根据 Woocommerce 中的选定值显示或隐藏注册字段
- mongodb - 将本地 mongo db 迁移到 atlas 后无法从 atlas 获取记录
- javascript - 在 Puppeteer 中获取所有带有 XPath 的链接(暂停或不工作)?
- c - 用函数排序数组而不使用 C 中的指针没有成功。为什么?
- reactjs - 从另一个组件获取值到 redux 表单字段中
- c# - 将 Unity 的 RGBA 数组转换为 YUV 字节数组
- python-3.x - 使用变量键访问字典中的值
- c++ - 编辑树视图项目不会自动更新数据库
- list - 在转到 Delve 的列表视图中禁用单击事件