使用 Openpyxl 导出到 Excel - 特定的行和列

Exporting to Excel Using Openpyxl - specific rows and columns

我已尝试使用 Pandas 成功填充 QTableWidget 中的数据。 现在我想将特定行和列导出到现有 excel,这样我就不会丢失此 excel 中的样式表和其他数据。请帮我找到 运行 正确的解决方案。

目标是导出到 excel 到特定的行和列,行范围从 7 到 30,列范围从 1 到 13,使用 OpenPyxl 仅修改现有 excel 的值。我知道“追加”意味着在 excel 的底部添加整个数据 table 但我不知道该使用什么函数。

  def kalkuacje_exportuj(self):
    columnHeaders = []

    # create column header list
    for j in range(self.ui.tableWidget.model().columnCount()):
        columnHeaders.append(self.ui.tableWidget.horizontalHeaderItem(j).text())

    df = pd.DataFrame(columns=columnHeaders)

    # create dataframe object recordset
    for row in range(self.ui.tableWidget.rowCount()):
        for col in range(self.ui.tableWidget.columnCount()):
            df.at[row, columnHeaders[col]] = self.ui.tableWidget.item(row, col).text()



    from openpyxl import Workbook
    wb = Workbook()
    wb = load_workbook ('OFERTA_SZABLON.xlsx')
    # ws1 = wb.sheetnames()
    ws1 = wb["DETALE wyceniane osobno"]

    # for row in ws1.iter_rows(min_row=7,
    #                 max_row=30,
    #                 min_col=1,
    #                 max_col=13):
    for row in range(7, 30):
        for col in range(1, 13):
            for r in dataframe_to_rows(df, index=False, header=False):
                ws1.append(r)
        # for cell in row:
        #     print(cell)


    wb.save('OFERTA_SZABLON.xlsx')

我是这样解决问题的:

from openpyxl import Workbook
wb = Workbook()
wb = load_workbook ('OFERTA_SZABLON.xlsx')
# ws1 = wb.sheetnames()
ws1 = wb["DETALE wyceniane osobno"]

# for r in dataframe_to_rows(df, index=False, header=False):
#     ws1.append(r)
offset_row = 5        
offset_col = 0

row = 1
for row_data in dataframe_to_rows(df, index=False, header=False):
    col = 1
    for cell_data in row_data:

        ws1.cell(row + offset_row, col + offset_col, cell_data)

        col += 1

    row += 1



wb.save('OFERTA_SZABLON.xlsx')