Open Source Python API för Google Sheets

Python-bibliotek som gör det enkelt att anropa Python från Excel och vice versa.

Xlwings är ett python-API med öppen källkod för att manipulera Excel-filformat. Med hjälp av API:et kan du automatisera excel från python för att producera rapporter, skriva UDF:er (användardefinierade funktioner), skriva makron och fjärrstyra Excel. Dessutom tillåter API:et att manipulera datastrukturer som celler, listor, intervall, NumPy-arrayer, pandadataramar och pandaserier.

Xlwings kräver installation av Microsoft Excel, så allt fungerar på Windows och macOS förutom att UDF:erna bara fungerar på Windows.

Previous Next

Komma igång med Xlwings

Du måste ha Python 3.5 eller högre installerat på ditt system för att köra xlwings smidigt. Det rekommenderade sättet att installera via PIP. Använd följande kommando.

Installera Xlwings via PIP Command

pip install xlwings

Installera Xlwings via Conda

conda install xlwings

Interagera med Excel från Python

Xlwings API tillåter manipulering av Microsoft Spreadsheets med Python. Med hjälp av API:et kan du ansluta till en befintlig arbetsbok eller skapa en ny med metoden xlwings.Book(). Du kan läsa/skriva värden till och från intervall, utöka intervall, konvertera datatyper enkelt. Dessutom kan du lägga till Matplotlib & Plotly-diagram som bilder i dina Excel-arbetsböcker.

Få dimensioner av Excel Ranges Dynamiskt via 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

Ring Python från Excel

Kalkylarksbiblioteket med öppen källkod Xlwings tillåter programvaruutvecklare att kommunicera med Python via Excel. Du kan anropa pythonfunktioner i ditt excel antingen genom att använda Kör-knappen i Xlwings Excel-tillägg eller genom att använda RunPython VBA-funktionen. Det som är bra med att använda Excel-tillägget är att du inte behöver dina arbetsböcker för att vara makroaktiverade, och du kan spara det som xlsx.

Använd Python Script för att infoga R-koder i 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)

Användardefinierade funktioner (UDF) i Excel med Python

Xlwings bibliotek ger utvecklare möjlighet att skriva användardefinierade funktioner (UDF) i Microsoft Excel-filformat programatiskt. För närvarande är UDF:er endast tillgängliga på Windows. API:et tillåter användning av enkla funktioner, antal arraydimensioner, dynamiska arrayformler, arryaformler med NumPy och mer.

Hur man ringer Marcos via RunPython i 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
 Svenska