Я пытаюсь написать скрипт, который должен получить доступ к книге Excel, содержащей множество внешних ссылок на другие книги Excel. Сценарий должен вести инвентаризацию ячеек в каждом рабочем листе основной рабочей книги, содержащем ссылку, копируя соответствующую информацию (рабочий лист, координату ячейки, формулу, вычисленное значение) в кадр данных pandas.
Я запускаю свой сценарий с помощью win32com, чтобы создать экземпляр приложения Excel, в котором уже отключены DisplayAlerts и Update Links. Эти два параметра влияют на openpyxl и xlwings в моем сценарии.
Можно ли получить доступ к активной книге Excel, запущенной win32com, в активном приложении Excel, используя пакеты xlwings или openpyxl?
Предположим, я создаю объект книги с именем win32_wb, используя следующий код:
import xlwings as xw
import openpyxl
import win32com.client as win32
from win32com.client import DispatchEx
import pandas as pd
file_1 = r"C:\Users\me\Documents\ext_ref.xlsx"
# Create an instance of Excel
excel_1 = win32.DispatchEx('Excel.Application')
# Ensure the Excel instance is not shown in the U/I (runs faster)
excel_1.Visible = False
# disable Warning & Link Update messages for excel_1
run_macro(excel_1)
# Open the ref workbook as an object in the Excel instance
wb = excel_1.workbooks.open(file_1)
# Need to access the object with openpyxl or xlwings