API Python Open Source pour Google Sheets

Bibliothèque Python qui facilite l'appel de Python à partir d'Excel et vice versa.

Xlwings est une API python open source pour manipuler le format de fichier Excel. À l'aide de l'API, vous pouvez automatiser Excel à partir de Python pour produire des rapports, écrire des UDF (fonctions définies par l'utilisateur), écrire des macros et contrôler Excel à distance. De plus, l'API permet de manipuler des structures de données telles que des cellules, des listes, des plages, des tableaux NumPy, des cadres de données panda et des séries panda.

Xlwings nécessite l'installation de Microsoft Excel, donc tout fonctionne sur Windows et macOS sauf que les UDF ne fonctionnent que sur Windows.

Previous Next

Premiers pas avec Xlwings

Vous devez avoir Python 3.5 ou supérieur installé sur votre système pour exécuter xlwings en douceur. La méthode recommandée pour installer via PIP. Veuillez utiliser la commande suivante.

Installer Xlwings via la commande PIP

pip install xlwings

Installer Xlwings via Conda

conda install xlwings

Interagissez avec Excel à partir de Python

L'API Xlwings permet de manipuler des feuilles de calcul Microsoft à l'aide de Python. À l'aide de l'API, vous pouvez vous connecter à un classeur existant ou en créer un nouveau à l'aide de la méthode xlwings.Book(). Vous pouvez lire/écrire des valeurs vers et depuis des plages, étendre des plages, convertir facilement des types de données. De plus, vous pouvez ajouter des graphiques Matplotlib & Plotly sous forme d'images dans vos classeurs Excel.

Obtenir les dimensions des courbes Dynamiquement par 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

Appeler Python depuis Excel

La bibliothèque de feuilles de calcul Open Source Xlwings permet aux développeurs de logiciels de communiquer avec Python via Excel. Vous pouvez appeler des fonctions python dans votre Excel soit en utilisant le bouton Exécuter du complément Excel Xlwings, soit en utilisant la fonction RunPython VBA. La bonne chose à propos de l'utilisation d'Excel Add-In est que vous n'avez pas besoin que vos classeurs soient compatibles avec les macros, et vous pouvez l'enregistrer au format xlsx.

Utilisez le scénario Python pour insérer les codes R dans 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)

Fonctions définies par l'utilisateur (UDF) dans Excel avec Python

La bibliothèque Xlwings donne aux développeurs la possibilité d'écrire des fonctions définies par l'utilisateur (UDF) dans le format de fichier Microsoft Excel par programmation. Actuellement, les UDF ne sont disponibles que sur Windows. L'API permet d'utiliser des fonctions simples, le nombre de dimensions de tableau, des formules de tableau dynamiques, des formules arrya avec NumPy et plus encore.

Comment appeler Marcos par RunPython dans 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
 Français