Python 如何使用Openpyxl';s表模块?

Python 如何使用Openpyxl';s表模块?,python,pandas,openpyxl,Python,Pandas,Openpyxl,我试图创建一个脚本来同时处理几个Excel工作表,我试图让Python处理的步骤之一是使用从数据框传递的数据创建一个表。查看文档,创建一个表似乎非常简单 以下示例来自: 但是,这会创建一个空表,而不是使用单元格“A1:C35”中的数据。我似乎在任何地方都找不到超出这些步骤的任何例子,因此非常感谢对我可能做错的事情的任何帮助 “A1:C35”中的数据正在写入Excel,如下所示: while i < len(self.sheets): with pd.ExcelWri

我试图创建一个脚本来同时处理几个Excel工作表,我试图让Python处理的步骤之一是使用从数据框传递的数据创建一个表。查看文档,创建一个表似乎非常简单

以下示例来自:

但是,这会创建一个空表,而不是使用单元格“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
为了澄清这一点,我首先将数据框写入Excel,然后将写入的数据格式化为表格。通过先创建表格,然后写入Excel来反转这些步骤,填充表格,但去掉格式(字体颜色、字体类型、大小等)。这意味着我必须添加一个附加步骤来修复格式(如果可能的话,我希望避免)

# create a table
table = Table(displayName='IdlingReport', ref='A1:C35', tableStyleInfo=mediumstyle)
创建一个特殊的Excel对象-一个名为
IdlingReport
的空表

您可能还需要其他东西—用数据框中的数据填充Excel工作簿的工作表

为此,有一个函数
dataframe\u to\u rows()


请参阅和。

空桌子是什么意思?A1:C35行中有哪些数据?我已经编辑了我的问题,以包含我用于将数据框写入Excel的代码。希望它能让事情变得更清楚一点。实际上我已经在用pd.to_Excel编写Excel了。我已经编辑了上面的问题,以包括这部分代码以及输出的外观。
Time                Location                   Duration
1/01/2019     [-120085722,-254580042]           5 Min
1/02/2019     [-120085722,-254580042]           15 Min
1/02/2019     [-120085722,-254580042]           7 Min
# create a table
table = Table(displayName='IdlingReport', ref='A1:C35', tableStyleInfo=mediumstyle)
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")