Open source Python-API voor Google Spreadsheets

Python-bibliotheek die het gemakkelijk maakt om Python vanuit Excel aan te roepen en vice versa.

Xlwings is een open source python-API voor het manipuleren van het Excel-bestandsformaat. Met behulp van de API kunt u Excel automatiseren vanuit Python om rapporten te produceren, UDF's (door de gebruiker gedefinieerde functies) te schrijven, macro's te schrijven en Excel op afstand te bedienen. Bovendien maakt de API het mogelijk om datastructuren zoals cellen, lijsten, bereiken, NumPy-arrays, panda-dataframes en panda-series te manipuleren.

Xlwings vereist de installatie van Microsoft Excel, dus alles werkt op Windows en macOS behalve dat de UDF's alleen op Windows werken.

Previous Next

Aan de slag met Xlwings

U moet Python 3.5 of hoger op uw systeem hebben geïnstalleerd om xlwings soepel te laten werken. De aanbevolen manier om via PIP te installeren. Gebruik de volgende opdracht.

Installeer Xlwings via PIP Command

pip install xlwings

Installeer Xlwings via Conda

conda install xlwings

Interactie met Excel vanuit Python

Xlwings API maakt het mogelijk om Microsoft Spreadsheets te manipuleren met Python. Met behulp van de API kunt u verbinding maken met een bestaande werkmap of een nieuwe maken met de xlwings.Book()-methode. U kunt waarden van en naar reeksen lezen/schrijven, reeksen uitbreiden en gegevenstypes gemakkelijk converteren. Verder kunt u Matplotlib & Plotly-diagram als afbeeldingen toevoegen aan uw Excel-werkmappen.

Haal Dimensies van Excel Ranges Dynamisch 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

Roep Python aan vanuit Excel

Met de open source-spreadsheetbibliotheek Xlwings kunnen softwareontwikkelaars via Excel met Python communiceren. U kunt python-functies in uw Excel aanroepen door de knop Uitvoeren van de Xlwings Excel-invoegtoepassing te gebruiken of door de RunPython VBA-functie te gebruiken. Het goede aan het gebruik van Excel-invoegtoepassing is dat u uw werkmappen niet nodig hebt voor macro's en dat u deze kunt opslaan als xlsx.

Gebruik Python Script om R-codes in 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)

Door de gebruiker gedefinieerde functies (UDF's) in Excel met Python

De Xlwings-bibliotheek geeft ontwikkelaars de mogelijkheid om door de gebruiker gedefinieerde functies (UDF's) programmatisch in Microsoft Excel-bestandsindeling te schrijven. Momenteel zijn UDF's alleen beschikbaar op Windows. De API maakt het gebruik van eenvoudige functies, aantal matrixafmetingen, dynamische matrixformules, arrya-formules met NumPy en meer mogelijk.

Hoe bel je Marcos via RunPython in 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
 Dutch