1. produkty
  2.   Tabulka
  3.   Python
  4.   Xlwings
 
  

Open Source Python API pro Tabulky Google

Knihovna Pythonu, která usnadňuje volání Pythonu z Excelu a naopak.

Xlwings je open source python API pro manipulaci s formátem souboru Excel. Pomocí API můžete automatizovat Excel z pythonu a vytvářet sestavy, psát UDF (uživatelsky definované funkce), psát makra a ovládat Excel na dálku. Kromě toho API umožňuje manipulaci s datovými strukturami, jako jsou buňky, seznamy, rozsahy, pole NumPy, datové rámce panda a série panda.

Xlwings vyžaduje instalaci aplikace Microsoft Excel, takže vše funguje na Windows a MacOS kromě toho, že UDF fungují pouze na Windows.

Previous Next

Začínáme s Xlwings

Pro bezproblémový chod xlwings musíte mít na svém systému nainstalovaný Python 3.5 nebo vyšší. Doporučený způsob instalace přes PIP. Použijte prosím následující příkaz.

Nainstalujte Xlwings pomocí příkazu PIP

pip install xlwings

Nainstalujte Xlwings přes Conda

conda install xlwings

Interakce s Excelem z Pythonu

Xlwings API umožňuje manipulaci s Microsoft Spreadsheets pomocí Pythonu. Pomocí API se můžete připojit k existujícímu sešitu nebo vytvořit nový pomocí metody xlwings.Book(). Můžete číst/zapisovat hodnoty do az rozsahů, rozšiřovat rozsahy, snadno převádět datové typy. Kromě toho můžete do sešitů aplikace Excel přidat graf Matplotlib & Plotly jako obrázky.

Získejte rozměry Excel Ranges Dynamicky přes 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

Volejte Python z Excelu

Open Source tabulková knihovna Xlwings umožňuje vývojářům softwaru komunikovat s Pythonem prostřednictvím Excelu. Funkce python můžete v Excelu volat buď pomocí tlačítka Spustit v doplňku Xlwings Excel, nebo pomocí funkce RunPython VBA. Dobrá věc na použití doplňku Excel je, že nepotřebujete, aby vaše sešity měly povolená makra, a můžete je uložit jako xlsx.

Použijte skript Python pro vkládání R kódů v aplikaci 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)

Uživatelsky definované funkce (UDF) v Excelu pomocí Pythonu

Knihovna Xlwings dává vývojářům možnost programově zapisovat User Defined Funcitons (UDF) do formátu souborů Microsoft Excel. V současné době jsou UDF k dispozici pouze v systému Windows. API umožňuje používat jednoduché funkce, počet rozměrů pole, dynamické maticové vzorce, arrya vzorce s NumPy a další.

Jak volat Marcos přes RunPython v aplikaci 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
 Čeština