0

我有一个带有几张工作表的 Excel 工作簿。我需要从其中一张表中读取一部分,获取过滤后的数据帧,然后将过滤后的数据帧中的单个值写入同一张表中的特定单元格。最好的方法是什么,最好不打开 Excel 工作簿?我需要在 linux 上运行它,所以不能使用 xlwings。我不想写整个工作表,而只是在其中选择一个单元格/偏移量。我尝试将以下内容写入现有工作表,但似乎对我不起作用(所需单元格没有更新):

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)

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

4

1 回答 1

1

如果您只是编写一个单元格,则以下内容就足够了。

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)

我相信您的问题是您从未调用过 writer 的 save 方法。

于 2019-01-04T23:25:13.260 回答