Nyílt forráskódú Python API a Google Táblázatokhoz

Python-könyvtár, amely megkönnyíti a Python meghívását az Excelből és fordítva.

Az Xlwings egy nyílt forráskódú python API az Excel fájlformátumok manipulálására. Az API segítségével automatizálhatja az Excelt a pythonból jelentések készítéséhez, UDF-ek (felhasználó által definiált függvények) írásához, makrók írásához és az Excel távoli vezérléséhez. Ezenkívül az API lehetővé teszi az adatstruktúrák, például cellák, listák, tartományok, NumPy tömbök, panda adatkeretek és panda sorozatok manipulálását.

Az Xlwings megköveteli a Microsoft Excel telepítését, így minden működik Windowson és macOS-en, kivéve azt, hogy az UDF-ek csak Windowson működnek.

Previous Next

Az Xlwings első lépései

Az xlwings zökkenőmentes futtatásához Python 3.5 vagy újabb verziót kell telepítenie a rendszerére. A PIP-n keresztüli telepítés javasolt módja. Kérjük, használja a következő parancsot.

Telepítse az Xlwings-t a PIP Command segítségével

pip install xlwings

Telepítse az Xlwings-t a Condán keresztül

conda install xlwings

Interakció a Python Excellel

Az Xlwings API lehetővé teszi a Microsoft Spreadsheets Python használatával történő manipulálását. Az API segítségével csatlakozhat egy meglévő munkafüzethez, vagy létrehozhat egy újat az xlwings.Book() metódussal. Értékeket olvashat/írhat tartományokba és tartományokból, kibővítheti a tartományokat, könnyen konvertálhat adattípusokat. Ezenkívül a Matplotlib és Plotly diagramokat képként is hozzáadhatja Excel-munkafüzeteihez.

Kap Dimenziók Excel Ranges Dynamically keresztül 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

Hívja a Pythont az Excelből

Az Xlwings nyílt forráskódú táblázattár lehetővé teszi a szoftverfejlesztők számára, hogy Excelen keresztül kommunikáljanak a Pythonnal. A python funcitonokat az Excelben az Xlwings Excel bővítmény Futtatás gombjával vagy a RunPython VBA funkciójával hívhatja meg. Az Excel-bővítmény használatában az a jó, hogy nem szükséges, hogy a munkafüzetek makróképesek legyenek, és elmentheti xlsx néven.

Használja a Python Scriptet az R kódok beillesztésére a Microsoft Excel-ben

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)

Felhasználó által definiált függvények (UDF-ek) az Excelben Python használatával

Az Xlwings könyvtár lehetőséget ad a fejlesztőknek arra, hogy programozottan írjanak felhasználói függvényeket (UDF) a Microsoft Excel fájlformátumba. Jelenleg az UDF-ek csak Windowson érhetők el. Az API lehetővé teszi az egyszerű funkciók használatát, a tömbméretek számát, a dinamikus tömbképleteket, az arrya képleteket a NumPy-val és még sok mást.

Hogyan hívjuk fel a Marcost RunPython-en keresztül a Microsoft Excel-ben

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
 Magyar