使用 xlwings 写入现有 Excel 工作簿

Posted

技术标签:

【中文标题】使用 xlwings 写入现有 Excel 工作簿【英文标题】:Writing to an existing Excel Workbook using xlwings 【发布时间】:2017-11-09 12:22:49 【问题描述】:

我是 Python 的新手,正在从事一个可以使用一些帮助的项目。因此,我正在尝试修改现有的 Excel 工作簿以比较库存数据。幸运的是,有一个在线程序可以检索我需要的所有数据,并且我已经成功地能够提取数据并将数据写入一个新的 Excel 文件。但是,目标是提取数据并将其放入现有的 excel 文件中。此外,我需要覆盖现有文件中的单元格值。我相信 xlwings 能够做到这一点,并且我认为我的代码在写入轨道上,但是我遇到了意外错误。我得到的错误是:

com_error: (-2147023174, 'The RPC server is unavailable.', None, None)  

我想知道是否有人知道为什么会出现此错误?另外,有人知道如何解决吗?它可以修复吗?我的代码错了吗?任何帮助或指导表示赞赏。谢谢。

import good_morning as gm
import pandas as pd
import xlwings as xw

#import income statement, balance sheet, and cash flow of AAPL
fd = gm.FinancialsDownloader()
fd_frames = fd.download('AAPL')

#Creates a DataFrame for only the balance sheet
df1 = pd.DataFrame(list(fd_frames.values())[0])

#connects to workbook I want to modify
wb = xw.Book(r'C:/Users/vince/OneDrive/Documents/Python/Project/spreadsheet.xlsm')

#sheet I would like to modify
sht = wb.sheets[1]

#modifies & overwrites values in my spreadsheet
sht.range('M6').value = df1 

【问题讨论】:

Writing and modifying an existing workbook using Python的可能重复 【参考方案1】:

https://github.com/xlwings/xlwings/issues/633 中讨论了此问题。它显然与 Excel 故障有关。该 github 页面上提供了一种解决方法。此外,xlwings 文档提到如果工作簿已经在 Excel 中打开,您可能会收到错误(不清楚是否是这个错误)。

【讨论】:

以上是关于使用 xlwings 写入现有 Excel 工作簿的主要内容,如果未能解决你的问题,请参考以下文章

插上翅膀,让Excel飞起来——xlwings

使用 XLWINGS 打开工作簿而不使其可见

Python 如何使用 ExcelWriter 写入现有工作表

使用 Python 操作现有的 Excel 工作簿

如何使用过滤的数据框更新现有 Excel 工作表的一部分?

Python办公自动化之操作Excel(一)