Google शीट्स के लिए ओपन सोर्स पायथन एपीआई

पायथन पुस्तकालय जो एक्सेल से पायथन को कॉल करना आसान बनाता है और इसके विपरीत।

एक्सेल फ़ाइल स्वरूप में हेरफेर करने के लिए Xlwings एक ओपन सोर्स पायथन एपीआई है। एपीआई का उपयोग करके आप रिपोर्ट बनाने के लिए अजगर से एक्सेल को स्वचालित कर सकते हैं, यूडीएफ (उपयोगकर्ता-परिभाषित फ़ंक्शन) लिख सकते हैं, मैक्रोज़ लिख सकते हैं और एक्सेल को दूरस्थ रूप से नियंत्रित कर सकते हैं। इसके अलावा, एपीआई कोशिकाओं, सूचियों, श्रेणियों, NumPy सरणियों, पांडा डेटा फ़्रेम और पांडा श्रृंखला जैसी डेटा संरचनाओं में हेरफेर करने की अनुमति देता है।

Xlwings को Microsoft Excel की स्थापना की आवश्यकता है, इसलिए सब कुछ Windows और macOS पर काम करता है सिवाय इसके कि UDF केवल Windows पर काम करता है।

Previous Next

Xlwings के साथ शुरुआत करना

xlwings को सुचारू रूप से चलाने के लिए आपको अपने सिस्टम पर Python 3.5 या उच्चतर स्थापित करना होगा। पीआईपी के माध्यम से स्थापित करने का अनुशंसित तरीका। कृपया निम्न आदेश का प्रयोग करें।

PIP कमांड के माध्यम से Xlwings स्थापित करें

pip install xlwings

Conda के माध्यम से Xlwings स्थापित करें

conda install xlwings

पायथन से एक्सेल के साथ इंटरैक्ट करें

Xlwings API Python का उपयोग करके Microsoft स्प्रेडशीट में हेरफेर करने की अनुमति देता है। एपीआई का उपयोग करके आप एक मौजूदा कार्यपुस्तिका से जुड़ सकते हैं या xlwings.Book() पद्धति का उपयोग करके एक नई कार्यपुस्तिका बना सकते हैं। आप श्रेणियों से मूल्यों को पढ़/लिख सकते हैं, श्रेणियों का विस्तार कर सकते हैं, डेटाटाइप को आसानी से परिवर्तित कर सकते हैं। इसके अलावा, आप अपने एक्सेल वर्कबुक में चित्रों के रूप में Matplotlib और प्लॉटली चार्ट जोड़ सकते हैं।

पायथन के माध्यम से गतिशील रूप से एक्सेल रेंज के आयाम प्राप्त करें

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

एक्सेल से पायथन को कॉल करें

ओपन सोर्स स्प्रेडशीट लाइब्रेरी Xlwings सॉफ्टवेयर डेवलपर्स को एक्सेल के माध्यम से पायथन के साथ संचार करने की अनुमति देती है। आप Xlwings Excel ऐड-इन के रन बटन का उपयोग करके या RunPython VBA funciton का उपयोग करके अपने एक्सेल के अंदर अजगर funcitons को कॉल कर सकते हैं। एक्सेल ऐड-इन का उपयोग करने के बारे में अच्छी बात यह है कि मैक्रो-सक्षम होने के लिए आपको अपनी कार्यपुस्तिकाओं की आवश्यकता नहीं है, और आप इसे xlsx के रूप में सहेज सकते हैं।

Microsoft Excel में R कोड डालने के लिए पायथन स्क्रिप्ट का उपयोग करें

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)

एक्सेल में पायथन का उपयोग करके उपयोगकर्ता परिभाषित कार्य (यूडीएफ)

Xlwings लाइब्रेरी डेवलपर्स को प्रोग्रामेटिक रूप से माइक्रोसॉफ्ट एक्सेल फाइलफॉर्मेट के अंदर यूजर डिफाइंड फंकिटॉन (यूडीएफ) लिखने की क्षमता देती है। वर्तमान में, यूडीएफ केवल विंडोज़ पर उपलब्ध हैं। एपीआई सरल funcitons, सरणी आयामों की संख्या, गतिशील सरणी सूत्र, NumPy और अधिक के साथ arrya सूत्रों का उपयोग करने की अनुमति देता है।

Microsoft Excel में RunPython के माध्यम से मार्कोस को कैसे कॉल करें

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
 हिन्दी