Pyspread – Pythonic Spreadsheet
I would really like to see a distribution which puts all the best alternative software together:
- pyspread for a spreadsheet
- LyX for a word-processor
- OpenSCAD for a 3D modeler
- TkzEdt (or ipe) for 2D drawing
&c.
(and I'd be interested in suggestions for similar software for other tasks, esp. presentations and database work)
I see it uses numerical designations for both the columns and rows allowing indexing like a 2D matrix. Nice. One of the many annoyances of Excel is the alphabetic columns that make even less sense beyond 26.
Related. Others?
Pyspread – Spreadsheet with deep Python integration - https://news.ycombinator.com/item?id=30426053 - Feb 2022 (1 comment)
Pyspread – Spreadsheet implementation in Python, cells return Python objects - https://news.ycombinator.com/item?id=7593603 - April 2014 (1 comment)
Show HN: Spreadsheets using Python - Have you seen this? - https://news.ycombinator.com/item?id=1884896 - Nov 2010 (47 comments)
PySpread: A spreadsheet that accepts a pure python expressions - https://news.ycombinator.com/item?id=265132 - Aug 2008 (3 comments)
Interestingly, Giles Thomas (the guy behind Python Anywhere) originally developed a Pythonic Spreadsheet application, called Resolver One, and then iterated to a a web-based version, called Project Dirigible.
Python Anywhere eventually span out from Project Dirigible when they realised that it was mostly being used for "generic" Python development rather than being used as a spreadsheet. There's an interesting write-up on this evolution here: https://blog.pythonanywhere.com/197/, and a demo of Dirigible here: https://www.youtube.com/watch?v=2ZoIp-5NaiQ.
Project dirigible ended up being open sourced here: https://github.com/pythonanywhere/dirigible-spreadsheet.
It seems to not be a true spreadsheet with dependency tracking and instead it recomputes everything after each change. Whis probably kind-of obvious as how to track the dependencies for arbitrary Python code is not that obvious. But without resorting to some static analysis magic one could just track accesses to the magic S[] during the excecution of the cell, its value cannot depend on anything else than what was accessed during the evaluation.
Related? Python in Excel:
https://support.microsoft.com/en-us/office/get-started-with-...
I guess it would be "easy" to compile to WASM using pyodide or such, and have a full in-browser version? might be cool
Shameless plug: If you have bigger data sets, check out https://rowzero.io
We scale up to hundreds of millions of rows and have native Python support.
You can define functions in Python and call them as formulas from any spreadsheet cell. We seamlessly marshal Pandas dataframes from Python land to spreadsheet land and back. [1]
We're also hosted and support real time collaboration like Google Sheets. We reimplemented the Excel formula language. We connect directly to Postgres, S3, Snowflake, Redshift, and Databricks. And the first workbook is free.
I have been using grist [0] for a number of months. Self-hosted. Uses Python and has defined all common Excel functions as Python functions. Has a web-api so it can be used as a kind of database. Very nice for my small use-cases where Excel would have fit the bill. I have not stress tested it and I know there are row limitations without going to the enterprise edition.
Shame it's GPL3. That counts it out of being included in FreeCAD, which I can't help but feel would be an improvement on the current spreadsheet workbench.
There used to be a python spreadsheet that worked as a spreadsheet - Resolver One.
It was .Net based but did not make enough money. I wonder if done now there would be enough support to open source something like this.
For a review see https://blog.jonudell.net/2007/09/27/first-look-at-resolver-...
I wonder what the performance is like?
This looks a very good idea.
This would be an ideal place for a semi-technical user to contribute documentation. Good starter open-source contribution. Without that, it's hard to figure out if it would work for me, let alone give feedback.
I'm curious how it compares to emacs' calc / spreadsheet mode in org.
Looks like it is
a) a stand-alone X11 app (not easily runnable on macos) b) using python instead of elisp.
Is that roughly accurate ? I can't easily understand from the post.
Python is a bad language for this, because one-liners are awkward. Multiline code is possible but ugly due to indentation-based syntax. Brace-based languages would be far more suitable here.
nix run nixpkgs#pyspread
Not saying Nix(os) Is The Way, but sometimes it does ok.
> Execution order between cells is not guaranteed to be stable and may differ for different versions of Python.
I couldn't understand what's the datatype of each cell. - How to use NumPy and others?
I tried to install, and discovered yet again why I fell out of love with Python.
Executing:
pip3 install -r requirements.txt
gave this error:
" Traceback (most recent call last): File "/tmp/tmprhazpypn", line 126, in prepare_metadata_for_build_wheel hook = backend.prepare_metadata_for_build_wheel AttributeError: module 'sipbuild.api' has no attribute 'prepare_metadata_for_build_wheel'
...
ERROR: Command errored out with exit status 1: /usr/bin/python3 /tmp/tmprhazpypn prepare_metadata_for_build_wheel /tmp/tmpl72s0sfd Check the logs for full command output."
I'm on Linux Mint 19.
this seems like a huge reinvention of jupyiter , i really hope they aren't going to recreate all the bugs.
The Gods have listened to me!
Eneble number line to 2^25 or minimal 2^22 by default.
Kill many user from Excel limitation 2^20!!
the api page doesn't seem to work.
I am Jacks endless disappointment. j/k - it looks nice - how would you compare/position it against something like jupyter lab?
I'm also interested in the least pythonic spreadsheet, has anyone worked on that?
I'd like to give praise for the "Target User Group" section on the homepage.
Not only does it say what users the app is for, but also who it is NOT for. I think this kind of information is invaluable in deciding whether or not to use or suggest an app.
I can understand if app developers want EVERYBODY to user their app (whether or not its the best for the job) or if the app developer just doesn't want to take the time to write out who the app is NOT for. But I will praise those who do include that information.