Доступ к объекту Excel, созданному win32com с помощью xlwings или openpyxl - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь написать скрипт, который должен получить доступ к книге 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
...