gpt4 book ai didi

python - 如何使用 Openpyxl 的表模块创建表?

转载 作者:行者123 更新时间:2023-12-01 07:03:40 25 4
gpt4 key购买 nike

我正在尝试创建一个脚本来同时处理多个 Excel 工作表,而我尝试让 Python 处理的步骤之一是使用从 pandas 数据帧传递的数据创建一个表。查看文档,创建表格似乎非常简单。

按照 here 中的示例:

        # define a table style
mediumstyle = TableStyleInfo(name='TableStyleMedium2', showRowStripes=True)

# create a table
table = Table(displayName='IdlingReport', ref='A1:C35', tableStyleInfo=mediumstyle)

# add the table to the worksheet
sheet2.add_table(table)

# Saving the report
wb.save(openexcel.filename)
print('Report Saved')

但是,这会创建一个空表,而不是使用单元格“A1:C35”中存在的数据。我似乎找不到任何超出这些步骤的示例,因此非常感谢您对我可能做错的事情提供帮助。

“A1:C35”中的数据正在写入 Excel,如下所示:

    while i < len(self.sheets):
with pd.ExcelWriter(filename, engine='openpyxl') as writer:
writer.book = excelbook
writer.sheets = dict((ws.title, ws) for ws in excelbook.worksheets)
self.df_7.to_excel(writer, self.sheets[i], index=False, header=True, startcol=0, startrow=0)
writer.save()
i += 1

输出看起来像这样

Time                Location                   Duration
1/01/2019 [-120085722,-254580042] 5 Min
1/02/2019 [-120085722,-254580042] 15 Min
1/02/2019 [-120085722,-254580042] 7 Min

现在澄清一下,我首先将数据框写入 Excel,然后将写入的数据格式化为表格。通过先创建表格然后写入 Excel 来颠倒这些步骤即可填充表格,但会删除格式(字体颜色、字体类型、大小等)。这意味着我必须添加一个额外的步骤来修复格式(如果可能的话我想避免)。

最佳答案

你的命令

# create a table
table = Table(displayName='IdlingReport', ref='A1:C35', tableStyleInfo=mediumstyle)

创建一个特殊 Excel 对象 - 一个名为 IdlingReport 的空

您可能想要其他东西 - 用 Pandas 数据帧中的数据填充 Excel 工作簿的工作表

为此目的,有一个函数dataframe_to_rows():

from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows

wb = Workbook()
ws = wb.active # to rename this sheet: ws.title = "some_name"
# to create a new sheet: ws = wb.create_sheet("some_name")

for row in dataframe_to_rows(df, index=True, header=True):
ws.append(row) # appends this row after a previous one

wb.save("something.xlsx")

参见Working with Pandas DataframesTutorial .

关于python - 如何使用 Openpyxl 的表模块创建表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58532513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com