this post was submitted on 22 Aug 2023
180 points (98.4% liked)

Python

6357 readers
1 users here now

Welcome to the Python community on the programming.dev Lemmy instance!

📅 Events

PastNovember 2023

October 2023

July 2023

August 2023

September 2023

🐍 Python project:
💓 Python Community:
✨ Python Ecosystem:
🌌 Fediverse
Communities
Projects
Feeds

founded 1 year ago
MODERATORS
 

Microsoft is bringing popular programming language Python to Excel. A public preview of the feature is available today, allowing Excel users to manipulate and analyze data from Python.

You won’t need to install any additional software or set up an add-on to access the functionality, as Python integration in Excel will be part of Excel’s built-in connectors and Power Query. Microsoft is also adding a new PY function that allows Python data to be exposed within the grid of an Excel spreadsheet. Through a partnership with Anaconda, an enterprise Python repository, popular Python libraries like pandas, statsmodels, and Matplotlib will be available in Excel.

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 54 points 1 year ago (1 children)

Python calculations run in the Microsoft Cloud,

Ah shit, so close.

[–] [email protected] 15 points 1 year ago (2 children)

I truly wonder why. I mean, others just package a python installation, but Microsoft wants to use the cloud. Very peculiar.

[–] [email protected] 21 points 1 year ago (1 children)

Running in the cloud is another reason to keep paying them every month in perpetuity, rather than just once. Helps keep revenues stable and indefinite.

[–] [email protected] 15 points 1 year ago (2 children)

It also allows them to completely gate the feature via tiers, like they do with other things in their environment. I've written about Power Platform since it is a pretty accessible tool for a lot of people. But it is also a shining example of Microsoft's almost microtransaction-like enterprise vision of the future. Everything is great in the preview. While they collect usage data. Then they tuck the most useful and common functionality behind various paywalls, including per usage paywalls. They leave just enough in the base tier to draw people in and get them committed to the platform.

It will not surprise me in the least if basic features are removed and paywalled after the preview. It would not surprise me in the least if they repeat what they've already done and prevent users from using built-in python functions unless the user pays up.

[–] [email protected] 2 points 1 year ago

But they can’t stop me from importing CSV data that I make with regular python. MS loves legacy features almost as much as they love money, that’s why windows 11 still has the fucking control panel.

load more comments (1 replies)
[–] [email protected] 5 points 1 year ago

Probably to keep it proprietary. If they distributed Python with scientific packages it would be hackable, and they’d lose control.

[–] [email protected] 31 points 1 year ago (1 children)

I work as a cybersecurity consultant.

This is going to be excellent for business.

[–] [email protected] 2 points 1 year ago

I had mostly the same reaction. The back of the box reads okay, but the potential is worrying. Even as a "cybersecurity news rubbernecker" (Seriously Risky Biz podcasts)

[–] [email protected] 21 points 1 year ago (1 children)

Finally. Another step to automate my work.

Excel formulas are way too limited and VBA is a nightmare to work with.

[–] [email protected] 6 points 1 year ago

Will this actually automate your workflow?

It seems that this Python integration expects that the source data already exists within the Excel file and Python can essentially just be used to create either visuals or new tables within the same Excel file.

If that's accurate, then this is intended exclusively for data analysis and not process automation. I don't think this will allow people to enhance their existing Python based ETL jobs or create new ones because of this new integration. This does not seem to be a replacement/substitute for VBA or OfficeScripts. It also does not seem to be an alternative to Power Query. If anything, this seems to be most similar to Power Pivot.

[–] [email protected] 15 points 1 year ago* (last edited 1 year ago) (1 children)

After preview it will be a paid subscription additional to Office365, the same strategy as Office Copilot. I hate this policy of pay for a product then still paid for more functionalities... at the end of the year you will have paid a lot.

Microsoft says Python in Excel will be included in a Microsoft 365 subscription during the preview, but “some functionality will be restricted without a paid license” after the preview ends.

[–] [email protected] 6 points 1 year ago

Yeah this is typical Microsoft looking at ways to force people up the price ladder. They did it with Power Platform in very obvious ways. They have completely gutted things like Power Apps and Power Automate by making almost all functions non-delegable... unless you are a paying a premium on top of a premium for costly dataverses in which case more than like 7 functions are magically delegable again. But then there are the pay-per-user/pay-per-use connections to access your own data, even if you host it yourself as an enterprise.

They should've been broken up in the late 90s.

[–] [email protected] 9 points 1 year ago (8 children)

But why does it need to run in the cloud?

[–] [email protected] 4 points 1 year ago

💰💰💰 By sending every calculation to Microsoft servers they can log what your company is doing and sell that data to ad-agencies. Also it forces you into a subscription.

load more comments (7 replies)
[–] [email protected] 8 points 1 year ago

Let’s see how they fuck this one up

[–] [email protected] 7 points 1 year ago

Python with a freaking powerful GUI built in. Yes please!

[–] [email protected] 7 points 1 year ago

This is the best summary I could come up with:


A public preview of the feature is available today, allowing Excel users to manipulate and analyze data from Python.

“You can manipulate and explore data in Excel using Python plots and libraries, and then use Excel’s formulas, charts and PivotTables to further refine your insights,” explains Stefan Kinnestrand, general manager of modern work at Microsoft.

Microsoft is also adding a new PY function that allows Python data to be exposed within the grid of an Excel spreadsheet.

Python calculations run in Microsoft’s Cloud, with the results returned into an Excel worksheet.

Excel users will be able to create formulas, PivotTables, and charts all based on Python data, with the ability to bring in charting libraries like Matplotlib and Seaborn for visualizations like heatmaps, violin plots, and swarm plots.

Python in Excel is rolling out today as a public preview for Microsoft 365 Insiders in the Beta Channel.


The original article contains 342 words, the summary contains 147 words. Saved 57%. I'm a bot and I'm open source!

[–] [email protected] 6 points 1 year ago (2 children)

As someone who is learning python, this is exactly what I was learning to code for. Are there any known resources or courses that specifically teach about python for excel or what you should learn t for this application? Libraries & dictionaries seem like a good start?

[–] [email protected] 8 points 1 year ago* (last edited 1 year ago) (1 children)

I'm guessing the features for reading csv will be important. So I would look at Automate the Boring Stuff with Python.

[–] [email protected] 2 points 1 year ago

Cool, thanks for the suggestion!

[–] [email protected] 2 points 1 year ago

There are some very good libraries for using Python with Excel. The creator of xlwings wrote a book: Python for Excel.

My favorite library is pandas, which can integrate with other libraries to edit Excel.

[–] [email protected] 3 points 1 year ago (4 children)

But why? Excel is a shit way to work with big amounts of data due to it's own format's complexity and bloated software. It's welcome to implement python, but that's not what holds it down. Opening a big csv would crash it on the same machine that loads it with a python IDE in seconds. It's not made for this. It's like, nice, but the volume of information you need to make it matter would break Excel in halves.

[–] [email protected] 7 points 1 year ago* (last edited 1 year ago) (4 children)

This feels like a really dated take to me. Leaving aside whether this was true in the past, in 2023, Excel is happy to open absolutely gargantuan files, and it's quite speedy once it's done so. You can even directly tie it to a database via ODBC if you want, and that works (albeit it obviously flattens the data out in the process, so goodbye foreign keys in any real sense). It also has tons of very easy-to-use data manipulation tools (pivot tables, tables in general, data extrapolation, graphs, etc.) that end up being wonderful complements to something like Python.

Could you write a Python program that would run faster than pure Excel and do the same thing? I mean, probably (although Excel's core execution engine is honestly pretty freaking fast). But could you write it as quickly? Maybe, maybe not. And certainly someone who knows Excel well would have an easier time adding a little Python to patch up any issues than rewriting the whole thing from scratch.

tl;dr I think you're not being accurate about contemporary Excel, and I separately suspect you're not really the target audience here

[–] [email protected] 2 points 1 year ago (2 children)

I agree with all your points about Excel being capable. However, I'm struggling to think of examples where this newly announced Python integration within Excel would be helpful (with the exception of new/different visualizations) - especially for the reasons you stated about modern Excel.

Are there any use cases that you can think of where someone who knows Excel well would resort to "adding a little Python to patch up any issues"?

load more comments (2 replies)
[–] [email protected] 2 points 1 year ago

Could I write a Python program that does the same thing as Excel but faster?

I don't need to. It's called pandas

load more comments (2 replies)
[–] [email protected] 4 points 1 year ago (1 children)

Sounds like this won’t be the right tool for your use case

[–] [email protected] 1 points 1 year ago

You are right, but it'd still be used by my company for me to cringe at that without a way to change it 😓

[–] [email protected] 4 points 1 year ago

I agree! I'm not sure why you're being downvoted either.

This new integration just allows you to do data analysis and data visualization of existing data within an Excel file via Python. The output of your Python scripts is limited to the Excel file. The Python environment itself is also limited as it runs on Microsoft's platform and is controlled by Microsoft.

The (Excel) problem that people already using Python for data analysis/visualization is that they have to use Excel files. Reading/writing Excel files via Python can sometimes be tedious or limiting. Utilizing Python inside of Excel via this integration may help in some scenarios, but they won't be able to use custom libraries built internally, control the Python environment (eg - must use specific version of Python or Python library, can't utilize all Python libraries available on pip, etc.), connect to all necessary external data sources via Python, and utilize proper VCS tools like git.

The problem that people automating tasks via Python have is that there is no Python library nearly as capable of reading or manipulating Excel files as VBA is. This new Python integration does not change that.

The problem that Excel users have is that they want more advanced (or simple/easier) data analysis and data visualization capabilities. However, with Excel's dynamic array formulas, LAMBDA formula, Power Query, and Power Pivot, Excel is becoming much more capable than it ever was. If those tools cannot meet your needs, you likely need to move to something like R, Python, or some other tool. Embedding Python into Excel like this integration does still limits Python with all of Excel's current restraints (size, performance, etc.).

[–] [email protected] 2 points 1 year ago

Because this may allow companies that are already using excel and not planning on changing to actually have a powerful programming language.

[–] [email protected] 3 points 1 year ago (3 children)

Does LibreOffice support python? because VB is cancer

[–] [email protected] 4 points 1 year ago
load more comments (1 replies)
[–] [email protected] 3 points 1 year ago (2 children)
[–] [email protected] 2 points 1 year ago

I'd like to see it. VBA is actually brilliant, you can make very very portable applications with intuitive user input and output interfaces (i.e. a cell range in Excel, and and version of tables and graphs you like as outputs)... But realistically who wants to use BASIC these days?
I usually say it in jest, but I'm not sure there is actually a better RAD (rapid application development) platform out there than Excel (with a bit of VBA as needed).

[–] [email protected] 1 points 1 year ago

That would be nice, but I think this is more "Power Pivot via Python".

[–] [email protected] 3 points 1 year ago (1 children)

Fantastic news. This will help me immensely!

Having it run locally would be even more help for my use cases. I often have lists of IP addresses in my sheets, and it would be helpful to ping them directly from Python code. But I can work around that with fping or nmap.

[–] [email protected] 6 points 1 year ago (2 children)

This integration won't allow you to do that. Python will not run locally, but instead on Microsoft's platform (likely Azure).

If you're just reading some simple data from Excel, there are several ways of accomplishing this already. For example, Pandas has read_excel() and there is also openpyxl. You could even use those tools to write the results back to Excel. Things get more complicated though if the Excel file is something more than just a simple list.

[–] [email protected] 2 points 1 year ago

And honestly, for data you should be using formats like .csv anyways. i really don't see who this update is supposed to target. If you're using Python, the data must be large enough to warrant its use.

[–] [email protected] 2 points 1 year ago

Indeed

‘Tis better to .split() in the cloud than never to .split() at all

load more comments
view more: next ›