Я пытаюсь запустить макросы Excel из программного инструмента ABAQUS, который имеет встроенный Python.
У меня есть файл Excel по умолчанию, я хочу его в качестве основного файла Excel и создать новый файл Excel в зависимости от выходного файла базы данных.
- Я получаю доступ к файлу выходной базы данных ABAQUS, получаю его имя и создаю новый файл Excel с именем, комбинируя имя выходного файла базы данных и другое имя.
- Я копирую основной файл Excel в этот новый файл Excel.
Я могу открыть этот вновь созданный файл, но не могу запустить макрос.
Вот код с комментариями.
Я получаю путь к моему файлу с именем и расширением
filePath = odbFile.path
Имя файла только с расширением
filename_w_ext = os.path.basename(filePath)
odbfilename,odbfileExtension = os.path.splitext(filename_w_ext)
excel_filename='abc.xlsm'
odbfilename+'_FAT'+'.xlsm'
newExcelFile = odbfilename+'_FAT'+'.xlsm'
shutil.copy(excel_filename, newExcelFile)
У меня есть доступ к win32client для доступа к приложению Excel
xl = win32com.client.Dispatch("Excel.Application")
Открывая файл Excel, укажите путь к файлу
xl.Workbooks.Open(newExcelFile)
Скажите, что созданное newExcelFile имя new.xlsm
.
Для запуска макросов Excel с использованием PYTHON код по умолчанию -
xl.Application.Run("excelName!ModuleNumberOfTheMacro.MacroName")
Запустить мой макрос для импорта узлов из Excel
xl.Application.Run("newExcelFile!Module1.ImporterFichiersTextes")
Я записал тот же формат, но Python ищет лист Excel 'newExcelFile' вместо new.xlsm
.