Microsoft, Excel में Python लाने की तैयारी
(theverge.com)- Microsoft ने Excel के भीतर Python-आधारित डेटा विश्लेषण और विज़ुअलाइज़ेशन करने के लिए एक इंटीग्रेटेड फीचर को public preview में उपलब्ध कराना शुरू किया है
- बिना अलग इंस्टॉल के Excel रिबन से Python एक्सेस किया जा सकता है, और मौजूदा फ़ॉर्मूला, चार्ट और PivotTable के साथ नतीजों को और बेहतर बनाया जा सकता है
- नया PY फ़ंक्शन Python डेटा को स्प्रेडशीट ग्रिड में दिखाता है, और Anaconda के सहयोग से pandas, statsmodels, Matplotlib आदि को Excel में इस्तेमाल किया जा सकता है
- कैलकुलेशन लोकल पर नहीं बल्कि Microsoft Cloud में चलती है और फिर worksheet में वापस आती है, साथ ही Matplotlib और Seaborn आधारित विज़ुअलाइज़ेशन भी बनाए जा सकते हैं
- public preview की शुरुआत Windows पर Microsoft 365 Insiders के Beta Channel से हो रही है, और preview खत्म होने के बाद paid license के बिना कुछ फीचर सीमित रहेंगे
Excel के भीतर आया Python विश्लेषण
- Microsoft ने Excel में Python integration जोड़ा है, जिससे स्प्रेडशीट के भीतर ही डेटा को मैनिपुलेट और विश्लेषित किया जा सकता है
- यूज़र Excel रिबन से सीधे Python तक पहुँच सकते हैं, इसलिए परिचित Excel माहौल छोड़े बिना advanced analysis का काम जारी रख सकते हैं
- Python से बने plots और लाइब्रेरी के नतीजों को Excel के फ़ॉर्मूला, चार्ट और PivotTable के साथ जोड़कर आगे और संवारा जा सकता है
बिना अलग इंस्टॉल वाला built-in तरीका
- Python integration, Excel के built-in connector और Power Query के हिस्से के रूप में उपलब्ध है
- अतिरिक्त सॉफ़्टवेयर इंस्टॉल किए बिना या अलग add-on सेट किए बिना इसका उपयोग किया जा सकता है
- नया PY फ़ंक्शन Python डेटा को Excel स्प्रेडशीट ग्रिड के भीतर दिखाता है
Anaconda लाइब्रेरी और विज़ुअलाइज़ेशन
- Microsoft ने enterprise Python repository Anaconda के साथ साझेदारी की है ताकि Excel में प्रमुख Python लाइब्रेरी इस्तेमाल की जा सकें
- उपलब्ध लाइब्रेरी में ये शामिल हैं
- pandas
- statsmodels
- Matplotlib
- Excel यूज़र Python डेटा के आधार पर फ़ॉर्मूला, PivotTable और चार्ट बना सकते हैं
- Matplotlib और Seaborn जैसी chart लाइब्रेरी से ये विज़ुअलाइज़ेशन बनाए जा सकते हैं
- heatmap
- violin plot
- swarm plot
कैलकुलेशन Microsoft Cloud में प्रोसेस होती है
- Python कोड Excel स्प्रेडशीट के भीतर लिखा और इस्तेमाल किया जाता है, लेकिन कैलकुलेशन प्रोसेसिंग लोकल Excel की जगह Microsoft Cloud में होती है
- रन होने के बाद परिणाम फिर Excel worksheet में वापस भेज दिए जाते हैं
उपलब्धता और लाइसेंस शर्तें
- Python in Excel public preview, Microsoft 365 Insiders के Beta Channel में उपलब्ध है
- शुरुआती उपलब्धता Windows तक सीमित है
- Microsoft बाद में इसे दूसरे प्लेटफ़ॉर्म तक भी बढ़ाने की योजना बना रहा है
- preview अवधि के दौरान यह Microsoft 365 subscription में शामिल है
- preview खत्म होने के बाद paid license न होने पर कुछ फीचर सीमित हो जाएंगे
1 टिप्पणियां
Hacker News की राय
पहले Excel developer के तौर पर काम करते हुए Python को Excel में लाने की मेरी कोशिश नाकाम रही थी, इसलिए आज की यह खबर मेरे लिए सुखद आश्चर्य है
करीब 7 साल पहले मेरे पास Excel टीम छोड़ने का मौका था, लेकिन उस समय मेरे बॉस के बॉस को पता चला कि मैं Python को Excel में लाना चाहता हूं, तो उन्होंने कहा कि अगर मैं रुकूं तो यह काम मुझे सौंप देंगे। जिसे मैंने 6 महीने का काम समझा था, वह लगभग 3 साल का प्रोजेक्ट बन गया, और Python वाला हिस्सा धुंधला पड़ते-पड़ते आखिरकार JavaScript custom functions को Excel में डालने की दिशा में रिलीज हुआ
Python भी AzureML v1 के आधार पर “cloud में” चलता था, लेकिन local execution को लेकर चर्चा चलती रही। AzureML partner team में reorganization, relaunch, rehiring, PM के departures हुए, और एक दूसरी partner team ने समझा कि हमारा code JavaScript को external process में चलाने के लिए इस्तेमाल हो सकता है, तो हमने Python की तुलना में उस feature को रिलीज करने पर ज्यादा समय लगाया
मुख्य काम Excel calculation engine को बदलना था, ताकि functions asynchronous calculation कर सकें, और remote endpoint चाहे JavaScript हो, Python हो या कुछ और, calculation करते समय user spreadsheet के दूसरे हिस्सों पर काम जारी रख सके। पहले calculation के दौरान spreadsheet lock हो जाती थी, जो लंबी और अनिश्चित समय वाली calculations के लिए ठीक नहीं था। सोचता हूं कि हमने जो बनाया था, उसका कुछ हिस्सा इस feature में आया है या नहीं
“Recalc or die”
Office.js की समस्या यह है कि average Excel user के लिए npm dependencies के ढेर की वजह से शुरुआत करना बहुत मुश्किल है, और professional developers को भी काफी परेशानी होती है। यह देखकर संतोष है कि users को Node.js इस्तेमाल न करना पड़े: https://docs.xlwings.org/en/latest/pro/server/officejs_custo...
अब यह छोड़ा हुआ project है: https://alphawolfxl.com/
beta testing के लिए जिन कुछ लोगों से कहा था, उन्होंने कहा कि “कंपनी इसके लिए पैसे नहीं देगी,” तो लगा कि मैंने समय बर्बाद किया और इसे बंद कर दिया; अब यह देखकर मन में मिले-जुले भाव हैं
कुल मिलाकर Excel में JavaScript कैसे काम करता है, यह देखने के लिए असल में चलने वाला code कम है, और अभी यह लगभग “उल्लू कैसे बनाएं” वाले स्तर जैसा लगता है
अच्छा होता अगर यह सिर्फ Microsoft Cloud वाला तरीका न होकर local Python execution भी support करता, लेकिन फिर भी अकेला यह feature Excel को काफी modernize कर सकता है
यह इस तरह का data दिखाने वाली websites की demand भी खत्म कर सकता है। पिछली नौकरी में मैंने एक analytics website बनाई थी जिसे अंदर के कुछ ही लोग इस्तेमाल करते थे; उस समय अगर यह feature होता, तो शायद उसे पूरी तरह इसी से replace किया जा सकता था
मैं बार-बार समझाता हूं कि SQL Server में data mart बना दें और ETL tool से analytics के लिए जरूरी data भर दें, बस इतना ही करना है। उन्हें source data तक access न दें। फिर भी सब मुझे अजीब नजरों से देखते हैं, और इसके बजाय करोड़ों डॉलर के Tableau rollout project की ओर जाना चाहते हैं। Users वह नहीं चाहते, यह सच में बेतुका है
या फिर Excel web/desktop के feedback UI से भी भेज सकते हैं। PMs वह feedback पूरा पढ़ते हैं
सभी users के लिए consistent experience सुनिश्चित किया जा सकता है। समय के साथ versions अलग-अलग होते जाएंगे; ऐसे में सोचिए कि हर user को अपनी local Python distribution maintain करनी पड़े और Excel के साथ उसका काम करना सुनिश्चित करना पड़े—यह डरावना होगा
Excel workbook को दूसरे users के साथ share करने पर calculation बस काम करे, यह संभव हो सकता है। अलग-अलग local Python installations पर निर्भर करेंगे तो ऐसा नहीं होगा और users बहुत frustrate होंगे
Security भी बड़ी बात है। बस कल्पना कीजिए कि आप ऐसी Excel file खोल रहे हैं जो local user permissions के साथ Python code चला सकती है
दूसरे point से भी पूरी तरह सहमत हूं। existing IT infrastructure के साथ integrate होने वाले internal apps Python में बनाना, सबसे अच्छे हालात में भी, frustrate करने वाला काम है। Excel लगभग हर जगह पहले से IT infrastructure का हिस्सा है, और एक programmable responsive canvas है
disclosure: मैं इस feature की design team में काम करता हूं
यहां macros को client machine पर malware चलाने का रास्ता माना जाता है, और उनकी उपयोगिता इतनी बड़ी नहीं समझी जाती कि वह जोखिम उठाया जाए
इसमें साफ़ तौर पर चेतावनी के संकेत दिखते हैं। Excel की असली ताकत इस बात से आती है कि कोई workbook स्वतंत्र रूप से मौजूद रह सकती है, लेकिन अब process हमेशा के लिए cloud से बंध जाएगा
तीन साल बाद किसी दिवंगत सहकर्मी की workbook खोलनी पड़े, तो यह इस पर निर्भर होगा कि vendor इस integration feature को सपोर्ट करता रहता है या नहीं
अगर किसी भी काम का पहला कदम “software को फिर से चलाने का तरीका ढूँढना” बन जाए, तो यह भयानक है। पिछले कई दशकों में Excel, Outlook, Word के तरह-तरह के add-ons की वजह से ऐसा कई बार झेल चुका हूँ, और वे add-ons processing को remote पर भी नहीं करते थे
इसलिए कभी-कभी backups को सच में restore करके देखना, या ऐसे मामलों में महत्वपूर्ण files को validate करना अहम है
“Excel में Python” सुनकर उत्साहित हुआ था, लेकिन “cloud में run” वाक्य देखकर उत्साह ठंडा पड़ गया। cloud service से बाँधकर रखने के अलावा इसका कोई कारण नहीं दिखता। यह असुरक्षित printer ink से मुझे बचाने के दावे जैसा बहुत लगता है
आम तौर पर मुझे MS Office products पसंद हैं और मैं उन्हें positive नज़र से देखने की कोशिश करता हूँ। अगर lock-in के अलावा Python को cloud में run कराने की कोई plausibly अच्छी वजह हो, तो मुझे बताइए
मेरे हिसाब से M$ से निकल जाने का समय लगभग 5 साल पहले ही आ चुका था। Windows से लेकर Office तक, हर product में पहले से anti-consumer features मौजूद हैं
बेशक मैं यह भी समझता हूँ कि Excel+Python के advanced users शायद अपना Python runtime लाने और maintain करने के आदी होंगे
iOS और Android devices पर भी Excel इस्तेमाल करने वाले लोग हैं। इस तरीके से वे भी spreadsheet के अंदर Python इस्तेमाल और read कर सकेंगे
2005 में दोस्तों के साथ Resolver Systems नाम की कंपनी बनाई और Python-enabled spreadsheet Resolver One बनाया
अफसोस, यह market में नहीं चला, और हमने दिशा बदलकर online coding और hosting environment PythonAnywhere बनाया, जो काफ़ी सफल हुआ और पिछले साल Anaconda ने उसे acquire कर लिया। और अब circle complete हो गया
स्पष्ट कर दूँ, Anaconda के अंदर यह feature बनाने वाली team PythonAnywhere team से पूरी तरह अलग है। अगर वही लोग होते तो यह Hollywood जैसी कहानी के लिए बिल्कुल perfect होता
हालांकि समस्या यह थी कि Resolver IronPython-based था, इसलिए कई libraries ठीक से काम नहीं करती थीं
PythonAnywhere webapp से सीधे छोटे fixes कर पाना मुझे बहुत पसंद था, और जब GCP/AWS इस्तेमाल करना शुरू किया तो वह feature बहुत याद आया
“Python calculations Microsoft Cloud में run होते हैं” वाक्य देखकर मेरे colleague ने मज़ाक में कहा, “लगता है Microsoft तक Windows पर local Python installation manage नहीं कर पाता…”
लेकिन यह सोचना मज़ेदार है कि Microsoft सचमुच local Python environment setup की समस्या आखिरकार हल कर दे, और Excel पूरे operating system का standard Python package manager बन जाए
$ excelpip install fastapi==9.11.23fastapi version 11.09.2023 खोजा जा रहा है…लगा था कि वे problem space में गहराई से उतरकर open source दुनिया से निकली चीज़ों से आगे जाने वाला package manager फिर से invent करेंगे
इसके बजाय अब हमारे पास Windows Update, Windows Features, Microsoft Store, Software Center, winget हैं। winget Microsoft द्वारा बनाया गया Windows का package manager है—वही tool जिसे Windows के लिए Microsoft द्वारा बनाए गए एक और package manager से install करना पड़ता है
$GOV_AGENCYदुनिया के साथ collaborate कैसे करेगी?LibreOffice को बहुत पहले ही माहौल समझ लेना चाहिए था। सिद्धांत रूप से Python scripting संभव है, लेकिन यह हद से ज़्यादा झंझटभरी और अव्यवस्थित है, और सुधार का कोई roadmap भी नहीं दिखता।
वही चेतावनी Linux desktop और उसके apps पर भी व्यापक रूप से लागू होती है। ज्यादा से ज्यादा proprietary platforms cloud-based होकर, अक्सर Python API के जरिए मौजूदा apps में advanced “AI” features के extensions जोड़ेंगे।
अफसोस है कि open source दुनिया की कई धाराएं बहुत ज्यादा siloed हैं। हिस्सों के योग से बड़ी संभावनाएं बेकार जा रही हैं।
LibreOffice spreadsheet और Apple Numbers में मेरी सबसे बड़ी शिकायत non-contiguous selection copy/paste के handling को लेकर है।
उदाहरण के लिए, 5 rows और 3 columns वाले data में
1 2 3,7 8 9,a b crows select करके copy करने के बादd e fके नीचे paste करें, तो Excel केवल selected rows को लगातार जोड़ देता है। LibreOffice और Numbers बीच की खाली rows भी preserve करते हैं।इस behavior को बदलने वाली कोई setting मुझे नहीं मिली। Excel भी उन लोगों के लिए उल्टा irritate कर सकता है जो spacing preserve करना चाहते हैं, लेकिन मुझे spacing preserve करने की जरूरत शायद ही कभी पड़ी है, इसलिए LibreOffice और Numbers असुविधाजनक लगते हैं।
लोग इस पर ज्यादा ध्यान नहीं देते, क्योंकि office suite का सबसे popular use case Microsoft file formats के साथ interoperate करना है।
LibreOffice के अंदर scripts चलाने के लिए APSO script organiser recommended है: https://extensions.libreoffice.org/en/extensions/show/apso-a...
जिन older users ने कभी programming language नहीं इस्तेमाल की, वे उम्रदराज होकर retire हो रहे हैं; ऐसे में जो लोग Excel में Python जोड़ना सीखेंगे, वे आखिरकार Python को ज्यादा पसंद करेंगे। क्योंकि यह ज्यादा flexible और extensible है।
basic calculation sheet के अलावा Excel इस्तेमाल करने की कोई वजह नहीं है। कोई spreadsheet मांगे तो मैं उसे Python से generate करना automate कर देता हूं, ताकि उसे फिर कभी हाथ से न संभालना पड़े।
निराशाजनक।
“Excel में Python फिलहाल Windows पर Beta Channel चलाने वाले users के लिए उपलब्ध है। यह feature build 16.0.16818.2000 से पहले Windows के लिए Excel में roll out होगा, और उसके बाद अन्य platforms पर उपलब्ध होगा।” [1]
“Excel में Python, Windows के लिए Excel में इस्तेमाल किया जा सकता है। यह feature Mac के लिए Excel, web के लिए Excel, iPad के लिए Excel, iPhone के लिए Excel, Android के लिए Excel में उपलब्ध नहीं है। unsupported platforms पर Python वाली workbooks देखी जा सकती हैं, लेकिन Python cells को recalculate करने पर error दिखेगा।” [2]
[1] https://techcommunity.microsoft.com/t5/excel-blog/announcing...
[2] https://support.microsoft.com/en-us/office/introduction-to-p...
“Python calculations Microsoft Cloud में चलती हैं” — नहीं चाहिए।
जरा रुकिए। LibreOffice में सालों से Python था, लेकिन किसी ने परवाह नहीं की; उल्टा लोग शिकायत करते रहे कि “real work” के लिए 100% compatible VBA चाहिए। वे लोग अब कहां हैं?
अगर LibreOffice VBA, Office VBA के साथ compatible होता, तो पुराने Windows system को कहीं संभालकर रखने की कोई वजह नहीं बचती।
हम यह इसलिए करते हैं क्योंकि हमें पैसा कमाना है, और कोई भी ऐसी Excel spreadsheet खरीदना नहीं चाहता जो Excel में न चले।
मैं Linux पर LibreOffice Calc में काम करता हूं, और Excel का Linux support 0 है, इसलिए इतनी compatibility हो तो अच्छा होगा कि customers को बिना दिक्कत भेज सकूं, लेकिन अभी यह उसके आस-पास भी नहीं है।
अगर लोगों को उसके existence का पता न हो, तो लोग इस्तेमाल नहीं करते।
अगर लोग किसी और चीज़ के आदी हों, तो वे वही मांगते हैं।