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.

Previous Next

Начало работы с 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
 Русский