pandas openpyxl -获取另一个Excel工作簿中单元格的引用

eqzww0vc  于 2023-09-29  发布在  其他
关注(0)|答案(1)|浏览(133)

我正在使用一个excel工作簿,其中包含对其他工作簿的引用,例如,example1.xlsx具有如下单元格:=B2 + 'C:path\to\file\[example2.xlsx]Sheet1'!$B$1
但是当我用openpyxl读到它时:

import pandas as pd
from openpyxl import load_workbook

load_workbook(file, data_only=False)
df = pd.DataFrame(self.wb[sheet_name].values)

引用的值为1:=B2 + '[1]Sheet1'!$B$1
我如何用openpyxl正确读取这些值?

c3frrgcw

c3frrgcw1#

来自@Charlie Clark的评论:

  • 外部链接保存在Workbook对象的private _externalLinks属性中。*

从那时起已重命名为_external_links

from openpyxl import load_workbook

out = [el.file_link.Target for el in load_workbook("book1.xlsx")._external_links]

print(out) # ['file:///C:\\Users\\Timeless\\Desktop\\tmp\\book2.xlsx']

或者,如果您希望DataFrame + xlwings是一个选项,您可以用途:

#pip install xlwings
import xlwings as xw
    
with xw.App(visible=False) as app:
    wb = xw.Book("book1.xlsx")
    
    df = pd.DataFrame(wb.sheets["Sheet1"].used_range.formula)

输出量:

print(df)
                                                                0  1
0  = B2 + 'C:\Users\Timeless\Desktop\tmp\[book2.xlsx]Sheet1'!$B$1  7
1                                                               5  1

使用的输入:

相关问题