API Python с открытым исходным кодом для Google Таблиц
Библиотека Python, упрощающая вызов Python из Excel и наоборот.
Xlwings — это API Python с открытым исходным кодом для управления форматом файлов Excel. Используя API, вы можете автоматизировать Excel из Python для создания отчетов, написания UDF (пользовательских функций), написания макросов и удаленного управления Excel. Кроме того, API позволяет манипулировать структурами данных, такими как ячейки, списки, диапазоны, массивы NumPy, фреймы данных panda и серии panda.
Xlwings требует установки Microsoft Excel, поэтому все работает в Windows и macOS, за исключением того, что пользовательские функции работают только в Windows.
Начало работы с Xlwings
Для бесперебойной работы xlwings в вашей системе должен быть установлен Python 3.5 или выше. Рекомендуемый способ установки через PIP. Пожалуйста, используйте следующую команду.
Установите Xlwings с помощью команды PIP
pip install xlwings
Установите Xlwings через Conda
conda install xlwings
Взаимодействие с Excel из Python
Xlwings API позволяет управлять электронными таблицами Microsoft с помощью Python. Используя API, вы можете подключиться к существующей книге или создать новую, используя метод xlwings.Book(). Вы можете читать/записывать значения в диапазоны и из них, расширять диапазоны, легко преобразовывать типы данных. Кроме того, вы можете добавить диаграмму Matplotlib и Plotly в виде изображений в свои книги Excel.
Получить размеры Excel динамически через Python
sheet = xw.Book().sheets[0]
sheet['A1'].value = [[1,2], [3,4]]
range1 = sheet['A1'].expand('table') # or just .expand()
range2 = sheet['A1'].options(expand='table')
range1.value
[[1.0, 2.0], [3.0, 4.0]]
range2.value
[[1.0, 2.0], [3.0, 4.0]]
sheet['A3'].value = [5, 6]
range1.value
[[1.0, 2.0], [3.0, 4.0]]
range2.value
Вызов Python из Excel
Библиотека электронных таблиц с открытым исходным кодом Xlwings позволяет разработчикам программного обеспечения взаимодействовать с Python через Excel. Вы можете вызывать функции Python внутри вашего Excel либо с помощью кнопки «Выполнить» надстройки Xlwings Excel, либо с помощью функции RunPython VBA. Преимущество использования надстройки Excel заключается в том, что вам не нужно, чтобы ваши книги поддерживали макросы, и вы можете сохранить их как xlsx.
Использовать Python-скрипт для вставки R-кодов в Microsoft Excel
import tempfile
import segno
import xlwings as xw
# Update this with the name of your workbook
book = xw.Book('qr.xlsx')
sheet = xw.sheets[0]
# Update this with the starting cell of your URLs
start_cell = sheet['A1']
urls = start_cell.options(expand='down', ndim=1).value
# Loop through each URL and generate the QR code
for ix, url in enumerate(urls):
# Generate the QR code
qr = segno.make(url)
with tempfile.TemporaryDirectory() as td:
# Save the QR code as a temporary svg file. If you are on macOS, use pdf
# instead and if you don't have Microsoft 365, you may have to use png
filepath = f'{td}/qr.svg'
qr.save(filepath, scale=5, border=0, finder_dark='#15a43a')
# Insert the QR code to the right of the URL
destination_cell = start_cell.offset(row_offset=ix, column_offset=1)
sheet.pictures.add(filepath,
left=destination_cell.left,
top=destination_cell.top)
Пользовательские функции (UDF) в Excel с использованием Python
Библиотека Xlwings дает разработчикам возможность программно записывать определяемые пользователем функции (UDF) внутри файлового формата Microsoft Excel. В настоящее время пользовательские функции доступны только в Windows. API позволяет использовать простые функции, количество измерений массива, формулы динамического массива, формулы массива с NumPy и многое другое.
Позвонить Маркос через RunPython в Microsoft Excel
import xlwings as xw
@xw.sub
def my_macro():
"""Writes the name of the Workbook into Range("A1") of Sheet 1"""
wb = xw.Book.caller()
wb.sheets[0].range('A1').value = wb.name