Почему с помощью win32com я могу создать новый лист Excel, но не открыть уже существующий файл .xlsm? - PullRequest
0 голосов
/ 16 января 2020

Я начинающий с Python (3.7). Я хочу манипулировать файлами Excel и VBA. Я использую Spyder 3.3.6 для написания и компиляции кода.

Я могу создать новый чистый лист Excel и выполнять операции VBA с нуля, однако, когда я пытаюсь открыть существующий пустой файл .xlsm, я получаю ошибка.

Блок кода, подобный этому, работает нормально:

import win32com.client
xl=win32com.client.Dispatch("Excel.Application")
xl.visible=True
xl1=xl.Workbooks.Add()
xls=xl1.Worksheets.Add()

Но следующий блок кода не работает, в частности последняя строка:

import win32com.client
xl=win32com.client.Dispatch("Excel.Application")
xl.visible=True
xl.Workbooks.Open(Filename="C:\Full\Location\test.xlsm")

Консоль вываливает все это (я понятия не имею, что это значит):

runfile('C:/Users/xxxx/Desktop/xxfolderxx/PythonScripts/xxfilenamexx.py', wdir='C:/Users/xxxx/Desktop/xxfolderxx/PythonScripts')
Traceback (most recent call last):

  File "C:\Users\xxxx\AppData\Local\Continuum\anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3326, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)

  File "<ipython-input-17-c4b027276514>", line 1, in <module>
    runfile('C:/Users/xxxx/Desktop/xxfolderxx/PythonScripts/xxfilenamexx.py', wdir='C:/Users/xxxx/Desktop/xxfolderxx/PythonScripts')

  File "C:\Users\xxxx\AppData\Local\Continuum\anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
    execfile(filename, namespace)

  File "C:\Users\xxxx\AppData\Local\Continuum\anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/xxxx/Desktop/xxfolderxx/PythonScripts/xxfilenamexx.py", line 16
    xl.Workbooks.Open(Filename="C:\Users\xxxx\Desktop\xxfolderxx\PythonScripts\test.xlsm")
                               ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape


Я также попробовал те же два блока кода в блокноте Jupyter. Те же результаты, тот же 'SyntaxError:'

РЕДАКТИРОВАТЬ: samutamm направил меня к решению, ты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...