【发布时间】:2017-02-16 14:08:23
【问题描述】:
我有一张来自 pandas 数据框的 Excel 表格。然后我使用 Xlsxwriter 添加公式、新列和格式。问题是我似乎只能格式化我使用 xlsxwriter 编写的内容,而没有来自数据框的内容。所以我得到的是这样的half formatted table
从图像中可以看出,数据框中的两列保持不变。它们必须具有某种覆盖我的默认格式。
由于我不知道如何将工作表转换回数据框,所以下面的代码显然是完全错误的,但这只是为了说明我在寻找什么。
export = "files/sharepointExtract.xlsx"
df = pd.read_excel(export)# df = dataframe
writer = pd.ExcelWriter('files/new_report-%s.xlsx' % (date.today()), engine = 'xlsxwriter')
workbook = writer.book
# Code to make the header red, this works fine because
# it's written in xlsxwriter using write.row()
colour_format = workbook.add_format()
colour_format.set_bg_color('#640000')
colour_format.set_font_color('white')
worksheet.set_row(0, 15, colour_format)
table_body_format = workbook.add_format()
table_body_format.set_bg_color('blue')
for row in worksheet.rows:
row.set_row(0,15, table_body_format)
这段代码给出了一个属性错误,但即使没有 for 循环,我们也只能得到图像中可以看到的内容。
【问题讨论】:
-
您能否将编写数据的代码部分也包含在内,以便我们了解它与样式的关系?
-
“他们必须有某种覆盖我的默认格式。”那是正确的。 Pandas 中有默认的列/标题格式,它覆盖通过 XlsxWriter 接口应用的行/列格式。据我所知,没有任何公共 api 可以更改该格式(
datetime_format和date_format除外)。 -
@ASGM 更新了代码以包含我写入数据的位置
-
太棒了 - 你也可以发布错误吗?
标签: python excel pandas xlsxwriter