Xlwings: запустить python из файла Excel - PullRequest
0 голосов
/ 06 апреля 2020

Во-первых, я должен сказать, что этот код был в порядке в прошлые недели (это означает, что он работал и никаких проблем).

Я не знаю почему, но: 1 - у меня есть файл Excel на OneDrive , В этот файл импортированы xlwings и эта функция на VBA:

Sub CallSAP()
'Run the Python Script
RunPython ("import LoadSAP; LoadSAP.ScriptSAP()")    
End Sub

2 - файл LoadSAP.py был помещен в тот же путь файла Excel.

На этой неделе у меня есть Проблема:

---------------------------
Error
---------------------------
Traceback (most recent call last):

  File "<string>", line 1, in <module>

ModuleNotFoundError: No module named 'LoadSAP'

Press Ctrl+C to copy this message to the clipboard.
---------------------------
OK   
---------------------------

Это похоже на вызов xlwings module.py python из Excel

3 - Итак, я попытался выполнить LoadSAP.py, я Сделав копию в C: // Документах, я запустил функцию в файле записной книжки Jupyter, и чудесным образом Excel теперь распознает LoadSAP. Ps .: Мне нужно знать, как решить эту проблему, потому что у меня то же самое с функцией loadMaps.py.

4 - Теперь при запуске в Excel появляется новая проблема: программа не распознает путь OneDrive, и он предлагает перейти по ссылке https.

OSError: [WinError 123] The syntax of the file name, directory name, or volume label is incorrect: 'https://.../Documents/.../Excel file.xlsm'

5 - После того, как я сделал изменение, как требовалось в пункте 4, в этом строковом коде (это читается в другом файле Excel для pu sh некоторые данные)

gerder = read_excel (path_gerder + file_gerder, sheet_name = 'Base')

У меня 2 проблемы:

Иногда возвращается:

'ascii' codec can't encode character '\xea' in position 56: ordinal not in range(128)

Иногда он возвращает:

No such file: 'https://.../Documents/.../gerder file.xls'

Ps .: Если я использую ссылку на файл в Браузере, он загружается.

У меня много проблем с единственными числами, и это работала хорошо всего одну неделю go: Excel распознал все * .py, программа перечитала все файлы Excel непосредственно из OneDrive, etcs и т. д. Так что, если у вас есть идеи или предложения, я могу попробовать.

1 Ответ

0 голосов
/ 07 апреля 2020

Решение:

Сначала, как прокомментировал Феликс Цумштайн:

1 - Установить PYTHONPATH в файле Excel: Как установить PYTHONPATH в Excel с помощью xlwings

2 - я точно не знаю, почему, но xlwings не распознает путь OneDrive как 'C:/.../Documents/.../Excel file.xlsm'. Итак, эта ошибка появляется:

OSError: [WinError 123] The syntax of the file name, directory name, or volume label is incorrect: 'https://.../Documents/.../Excel file.xlsm'

В то же время функция read_excel из Pandas и другие функции не распознают путь OneDrive, такой как 'https://.../Documents/.../Excel file.xlsm'. И эта ошибка должна появиться:

'ascii' codec can't encode character '\xea' in position 56: ordinal not in range(128)

Решение: Я использовал путь как 'https://.../Documents/.../Excel file.xlsm' для любых функций xlwings. Для других функций я использовал путь: 'C:/.../Documents/.../Excel file.xlsm'.

...