xlwings: могу ли я сделать живую ссылку на уже открытую книгу?

Я пытаюсь использовать xlwings для связи Python с Excel. С хорошим успехом, но я не могу ссылаться на уже открытую (и измененную) книгу Excel. Итак, книга уже открыта в Excel, я хочу связать ее и использовать эту конкретную книгу.

Использование wb = Workbook(имя файла) работает нормально, за исключением случаев, когда я уже изменил электронную таблицу Excel в Excel. Когда я ввожу команду wb = Workbook(имя файла), Excel возвращает сообщение «имя файла уже открыто. Повторное открытие приведет к тому, что любые сделанные вами изменения будут отменены. Вы хотите продолжить Да/Нет?»

Таким образом, вместо того, чтобы использовать книгу, уже доступную в Excel, он пытается повторно открыть исходную книгу в Excel. Мне нужно использовать текущую (со всеми моими несохраненными изменениями) копию, поскольку она теперь находится в Excel.

Итак, вопрос сводится к следующему: как мне сделать живую ссылку на уже открытую книгу в Excel?

Спасибо, Виллем


person Willem    schedule 03.09.2015    source источник


Ответы (2)


Вы все делаете правильно, а это означает, что поведение, которое вы видите, является тонкой ошибкой, которая материализуется только при определенных обстоятельствах. Первое улучшение было сделано в v0.3.1 (см. the-excel-file">этот вопрос). Однако я уверен, что в следующей версии (v0.4.0) она наконец будет решена. Короче говоря, проблемы могут быть вызваны ненадежными расположениями документов, ошибкой юникода или использованием нескольких экземпляров.

ОБНОВЛЕНИЕ: xlwings v0.4.0 только что был выпущен и должен, наконец, надежно исправить эту ошибку.

person Felix Zumstein    schedule 03.09.2015

Когда я заранее не знаю, будет ли открыта рабочая книга Excel во время выполнения фрагмента кода Python, я просто пишу что-то рядом:

        try:
            wb = Workbook('[FILENAME]')
        except:
            wb = Workbook('[COMPLETE PATH + FILENAME]') 

(я использую xlwings 0.5.0)

person tagoma    schedule 06.12.2015