将数据框添加到特定单元格的Excel中

问题描述 投票:0回答:1

我正在使用openpyxl将熊猫数据框写入Excel电子表格。我正在从模板中读取excel工作簿,因为客户端需要特定的标头,格式等。

如果要添加从第17行开始的表,如何修改下面的代码以实现此目的?第1到16行中有格式化的合并单元格,因此当我尝试以当前格式保存时,它会显示AttributeError: 'MergedCell' object attribute 'value' is read-only。我看到了一个类似的堆栈问题,但受访者建议在添加数据框之前先添加一堆空白单元格-此解决方案对我不起作用。

import pandas as pd
from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows

wb = load_workbook('proto_temp.xlsx')
ws_rq = wb["Results Query"]

rows = dataframe_to_rows(df)

for r_idx, row in enumerate(rows, 1):
    for c_idx, value in enumerate(row, 1):
        ws_rq.cell(row=r_idx, column=c_idx, value=value)

wb.save("df_to_xl.xlsx")
python pandas openpyxl
1个回答
0
投票

问题:第17行有数据之后吗?

如果答案 == ,则参见下文

for r in dataframe_to_rows(df, index=True, header=True):
    ws.append(r)

如果答案 == ,则答案稍微复杂一些。

选项

  • 结构化代码,以便您在上面运行代码,之前其他单元格写在下面。
  • 将XLSX读入DF,进行更改,然后将其写回。
  • 最后,您可以先按append,然后再按move_range

希望这可以提供价值:)

© www.soinside.com 2019 - 2024. All rights reserved.