如何使用过滤后的数据框更新现有 excel sheet 的一部分?

how to update a portion of existing excel sheet with filtered dataframe?

我有一个包含多个 sheet 的 excel 工作簿。我需要从 sheet 之一中读取一部分,获取过滤后的数据帧并将该过滤后的数据帧中的单个值写入同一 sheet 中的特定单元格。最好的方法是什么,最好不要打开 excel 工作簿?我需要在 linux 上 运行 这个,所以不能使用 xlwings。我不想写整个 sheet,而只是在里面写一个选定的 cell/offset。我尝试了以下方法来写入现有的 sheet,但似乎对我不起作用(在所需的单元格中没有发生更新):

with pd.ExcelWriter('test.xlsx', engine='openpyxl') as writer:
    writer.book = load_workbook('test.xlsx')
    df_filtered.to_excel(writer, 'Sheet_Name', columns=['CS'], startrow=638, startcol=96)

任何提示都会有所帮助。谢谢

如果你只是写一个单元格,下面的内容就足够了。

import pandas as pd
import openpyxl

df = pd.DataFrame(data=[1,2,3], columns=['col'])
filtered_dataframe = df[df.col == 1].values[0][0]

filename = 'test.xlsx'
wb = openpyxl.load_workbook(filename)
wb['Sheet1'].cell(column=1, row=2, value=filtered_dataframe)
wb.save(filename)

我认为您的问题是您从未调用编写器的保存方法。