API Python ανοιχτού κώδικα για Φύλλα Google

Βιβλιοθήκη Python που διευκολύνει την κλήση της Python από το Excel και αντίστροφα.

Το Xlwings είναι ένα API python ανοιχτού κώδικα για το χειρισμό της μορφής αρχείου Excel. Χρησιμοποιώντας το API, μπορείτε να αυτοματοποιήσετε το excel από την python για να παράγετε αναφορές, να γράψετε UDF (συναρτήσεις που καθορίζονται από το χρήστη), να γράψετε μακροεντολές και να ελέγξετε το Excel εξ αποστάσεως. Επιπλέον, το API επιτρέπει τον χειρισμό δομών δεδομένων όπως κελιά, λίστες, εύρη, πίνακες NumPy, πλαίσια δεδομένων panda και σειρές panda.

Το Xlwings απαιτεί την εγκατάσταση του Microsoft Excel, επομένως όλα λειτουργούν σε Windows και macOS εκτός από το ότι τα UDF λειτουργούν μόνο στα Windows.

Previous Next

Ξεκινώντας με το Xlwings

Πρέπει να έχετε εγκατεστημένη την Python 3.5 ή νεότερη έκδοση στο σύστημά σας για την ομαλή εκτέλεση του xlwings. Ο προτεινόμενος τρόπος εγκατάστασης μέσω PIP. Χρησιμοποιήστε την παρακάτω εντολή.

Εγκαταστήστε το Xlwings μέσω της εντολής PIP

pip install xlwings

Εγκαταστήστε το Xlwings μέσω Conda

conda install xlwings

Αλληλεπίδραση με το Excel από την Python

Το Xlwings API επιτρέπει τον χειρισμό υπολογιστικών φύλλων της Microsoft χρησιμοποιώντας Python. Χρησιμοποιώντας το API μπορείτε να συνδεθείτε σε ένα υπάρχον βιβλίο εργασίας ή να δημιουργήσετε ένα νέο χρησιμοποιώντας τη μέθοδο xlwings.Book(). Μπορείτε να διαβάσετε/εγγράψετε τιμές σε και από εύρη, να επεκτείνετε εύρη, να μετατρέψετε τύπους δεδομένων εύκολα. Επιπλέον, μπορείτε να προσθέσετε γράφημα Matplotlib & Plotly ως εικόνες στα Βιβλία εργασίας του Excel.

Αποκτήστε δυναμικές διαστάσεις του Excel μέσω 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

Καλέστε την Python από το Excel

Η βιβλιοθήκη υπολογιστικών φύλλων ανοιχτού κώδικα Xlwings επιτρέπει στους προγραμματιστές λογισμικού να επικοινωνούν με την Python μέσω του Excel. Μπορείτε να καλέσετε python funcitons μέσα στο excel σας είτε χρησιμοποιώντας το κουμπί Run του Xlwings Excel Add-In είτε χρησιμοποιώντας το Funciton RunPython VBA. Το καλό με τη χρήση του πρόσθετου Excel είναι ότι δεν χρειάζεστε τα βιβλία εργασίας σας να είναι ενεργοποιημένα με μακροεντολές και μπορείτε να τα αποθηκεύσετε ως xlsx.

Χρησιμοποιήστε το Python script για να εισαγάγετε κωδικούς R στο 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)

Λειτουργίες καθορισμένες από το χρήστη (UDF) στο Excel χρησιμοποιώντας Python

Η βιβλιοθήκη Xlwings δίνει στους προγραμματιστές τη δυνατότητα να γράφουν Λειτουργίες Καθορισμένες από το Χρήστη (UDF) μέσα σε μορφή αρχείου του Microsoft Excel μέσω προγραμματισμού. Προς το παρόν, τα UDF είναι διαθέσιμα μόνο σε Windows. Το API επιτρέπει τη χρήση απλών λειτουργιών, αριθμού διαστάσεων πίνακα, τύπων δυναμικών πινάκων, τύπων arry με NumPy και πολλά άλλα.

Πώς να καλέσετε τον Marcos μέσω RunPython στο 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
 Ελληνικά