2015-09-03 6 views
0

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

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

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

Таким образом, вопрос сводится к следующему: Как мне жить ссылкой на уже открытую книгу в excel?

Спасибо, Willem

ответ

0

Вы делаете все правильно, это означает, что поведение, которое вы видите, это тонкая ошибка, которая материализуется только при определенных обстоятельствах. Первое улучшение было сделано в v0.3.1 (см. this question). Тем не менее, я уверен, что он, наконец, будет разрешен в следующей версии (v0.4.0). Короче говоря, проблемы могут быть вызваны недоверенными расположениями документов, ошибкой в ​​Unicode или при использовании нескольких экземпляров.

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

0

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

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

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