Автоматизация Excel стала проще: запуск макросов Excel с помощью Python

В этой статье блога мы рассмотрим различные способы запуска макросов Excel с использованием Python. Независимо от того, являетесь ли вы аналитиком данных, бизнес-профессионалом или начинающим программистом, автоматизация задач Excel может сэкономить вам время и усилия. Мы рассмотрим различные подходы и предоставим разговорные объяснения, а также примеры кода, которые помогут вам начать путь к автоматизации Excel.

Метод 1: Библиотека Win32com.
Первый метод предполагает использование библиотеки win32com, которая обеспечивает доступ к COM-интерфейсу Windows. Такой подход позволяет нам взаимодействовать с приложением Excel и выполнять макросы. Вот пример фрагмента кода:

import win32com.client as win32
excel = win32.Dispatch("Excel.Application")
workbook = excel.Workbooks.Open("path/to/your/file.xlsm")
excel.Application.Run("YourMacroName")
workbook.Close(SaveChanges=True)
excel.Quit()

Метод 2: библиотека xlwings.
Еще одна популярная библиотека для автоматизации Excel — xlwings. Он позволяет вам управлять Excel с помощью Python и легко вызывать макросы. Вот пример фрагмента кода:

import xlwings as xw
# Open the workbook
wb = xw.Book("path/to/your/file.xlsm")
# Call the macro
wb.macro("YourMacroName").run()
# Save and close the workbook
wb.save()
wb.close()

Метод 3: Библиотека Pywin32.
Библиотека pywin32— еще один мощный вариант для запуска макросов Excel. Он обеспечивает доступ к широкому спектру API-интерфейсов Windows, включая Excel. Вот пример фрагмента кода:

import win32com.client as win32
excel = win32.gencache.EnsureDispatch("Excel.Application")
workbook = excel.Workbooks.Open("path/to/your/file.xlsm")
excel.Run("YourMacroName")
workbook.Close(SaveChanges=True)
excel.Quit()

Метод 4: Библиотека Pandas:
Если вы уже работаете с библиотекой pandasдля манипулирования данными, вы также можете использовать ее для косвенного запуска макросов Excel. Вот пример фрагмента кода:

import pandas as pd
# Load the Excel file
excel_file = pd.ExcelFile("path/to/your/file.xlsm")
# Load the macro-enabled sheet
sheet = excel_file.parse("SheetName")
sheet["ColumnA"] = sheet["ColumnA"].apply(lambda x: x + 1)
# Save the updated sheet
with pd.ExcelWriter("path/to/your/output.xlsx", engine="xlsxwriter") as writer:
    sheet.to_excel(writer, sheet_name="SheetName", index=False)
    writer.save()

В этой статье мы рассмотрели несколько способов запуска макросов Excel с помощью Python. Предпочитаете ли вы использовать библиотеку win32com, xlwings, pywin32или даже библиотеку pandas, теперь у вас есть несколько вариантов. для автоматизации задач Excel. Поэкспериментируйте с этими методами и выберите тот, который лучше всего соответствует вашим потребностям. Автоматизация Excel с помощью Python открывает целый мир возможностей для эффективной обработки и анализа данных.