Pandas:将 Dataframe 写入打开的 Excel 文件

Pandas: Writing Dataframe to an open Excel File

我正在尝试通过单击按钮从 Excel 中的 VBA 调用此 python 脚本,它会读取数据,但如果 Excel 文件已打开。当文件关闭时一切正常,但是要从 excel 宏 运行 它,需要打开文件。这可能吗?

错误:

PermissionError: [Errno 13] Permission denied: 'SampleTest.xlsm'
import pandas as pd
from openpyxl import load_workbook

path = 'SampleTest.xlsm'

# Write to excel with Openpyxl
book = load_workbook(filename=path, read_only=False, keep_vba=True)
writer = pd.ExcelWriter(path, mode="a", engine="openpyxl", if_sheet_exists="replace")
writer.book = book
writer.sheets = dict((ws.title, ws) for ws in book.worksheets)
dfMatches.to_excel(writer, "Matches", index=False)
writer.save()

不,这不能用 openpyxl

完成

你要的是xlwings。此模块可以 运行 实时 excel 文件 - 事实上,您可以直接从 Excel 中将其设置为 运行 python 脚本。这应该完全符合您的要求。可以找到文档 here.

如何使用 xlwings 的快速示例(打开 Excel 文件)。

import xlwings as xw 

xw.Range('A1').value = "I wrote to this cell from xlwings"