I was an excel enthusiast and studied accounting mainly for Excel. Although I have moved to programming unlike most I still do think Excel is awesome.
I sincerely commend the enthusiasm, but working in the industry as the "excel expert", I think most outsider does not understand the "cult" aspect of Excel.
Excel works. That is it.
Trying to replace excel with anything will be percieved as replacing a calculator with some alien substance that does math. Excel is like Pencil and Pen. You can not replace it.
Excel is not software it is a tool.
I have had my fair share backlash when trying to introduce replacement and complimentary tools. To replace excel, you not only need to advocate for it's usefulness and you need to be also be liable to the complaints from excel users. If anything goes wrong no how minor with the new tool, you are the one who introduced all these mess.
So, in practice what usually happens is that, when people hit UX challenges they go to a consulting firm and commission a backoffice software to address the Excel limitations. Some business may pay for nocode but that is very rare. They go to backoffice software firm and they build a CRUD software that is now not replacing Excel but compliments it.
I think I understand the cult part of Excel. And to be honest, Excel is a fantastic tool. I don't think IronCalc can ever replace Excel (a boy can dream though!). But many companies need a spreadsheet of sorts they can embed in their product. Allow me a bit of humour:
> Any sufficiently complicated startup or young company contains an ad hoc, informally-specified, bug-ridden, slow implementation of 10% of Excel.
Excel is powerful, but it is also important to consider its limitations.
Things will get real when your orgs problems/needs grow from something that was totally cool to do with spreadsheets to something requiring higher complexity, performance, resilience, testability, coordination, ... — and the point at which you cross over into the latter is not always clearly marked.
It would for example not be advisable to use Excel sheets as a replacement for a distributed database of central importance, unless your org is a lemonade stand with 3 employees.
I would also prefer maintaining a python script with written tests over maintaining an Excel file containing complex business logic, but maybe that is just personal perference.
Don't get me wrong here, Excel is amazing and we should all use it where it shines. But as with all tools we need to be aware of the fact that they heavily color the way we look at problems, as expressed by Maslows famous aphorism: "If the only tool you have is a hammer, you tend to see every problem as a nail."
Good engineers should not be blinded by their tools, but accutly aware of their limitations and know which to use when. Just like with hand tools you could probably also just hammer a nail in using a shovel or "drill" a hole using a screwdriver and Excel is very versatile in those regards: it can get you very far without being the best solution, a bit like a swiss pocket knife.
> So, in practice what usually happens is that, when people hit UX challenges they go to a consulting firm and commission a backoffice software to address the Excel limitations. Some business may pay for nocode but that is very rare. They go to backoffice software firm and they build a CRUD software that is now not replacing Excel but compliments it.
Heh, where were you 6 month ago when my team was pitching some of our traders on replacing a system they'd built for balancing their strategy. It was built in excel of course, but what surprised me was the resistance to changing it at all. They all hated the thing, it was slow and crashed often, and right in the middle of the difficult part of the work too. Working with it was a terrible experience, even for people used to medium business enterprise crap. Yet they refused to consider any alternative to building some CRUD around it that would extract the worst parts.
The issue we faced was that there was no way we could contribute to this excel monster while still following the risk tolerance of our department. It's not that we're opposed to building something that is probably a bad idea, if it helps build relationships that let us build something better later. It's more that as soon as IT touches it, we get to own every legal aspect of it too. So they ended up with an external consultant that built them what was essentially an external database they could query, which was then supplied with data by some program somewhere.
It ended exactly as you say. They got a back-office firm to develop some one-off hack that alleviated the immediate problem, without replacing excel.
Outside of specific domains such as finance and accounting, most people don’t really need Excel, and will be served perfectly well by Google Sheets or whatever.
Indeed, I have hardly used Excel in years. I do use Google Sheets at work, where they are used for adhoc tracking by engineering, product management, project managers, etc.
Our son who is 11, he uses Google Sheets - and I know he has used Apple Numbers in the past too. I’m not sure if he even knows what Excel is.
As an expert in Excel, don’t you think Google Sheets has chipped away at Excel's dominance in a very smart way? I’m not saying that Google Sheets is a complete competitor to Excel, but it has been highly user-oriented. And, if we add Apple Numbers to this discussion, I feel it’s still at a kindergarten level by comparison.
I think this is where IronCalc like software could thrive: finding a non-complete competition to Excel, and Google Sheets that does the other part of the work better.
As a long time Google sheets user I recently was involved in a project for one of these Excel heavy enterprises.
I proposed the CRUD solution to complement their use case but the solution was not received well. They couldn't allocate computer resources to host the solution within their infra easily. So they pushed back and asked us to develop some Excel add-on, PowerBI based dashboard or some kind of Microsoft no code I can't care enough to remember the name.
I had no experience with PowerBI at all. But had a lot of fun learning about it. Great ideas on that piece of software but ultimately it's too hard for Excel users and too finicky for real data processing other than very simple stuff.
It failed spectacularly in the end. We could never make it work reliably and the customer also skimped on the license and didn't want to add some extra features M$ft charges on the side such as power automate and some "advanced instances". Which meant the software runs have to be manually triggered on the managers machine to update the dashboards. It was nasty.
The end result is completely unmaintainable. A collection of "M" scripts inside a power bi dashboard, it pulled data from multiple spreadsheets from specific locations, joined and processed the data, and generated reports. The scripts runs on a Thinkpad so it needs to fit inside the machine constraints of memory and processing. Some of the files are manually updated so very easy to mess up the format or permissions to the point the whole thing broke.
I think that experienced Excel users and managers don't expect Excel to be perfect, but have figured out how to cost the inevitable bugs and changes into their expectations, to a good enough level of accuracy.
Nobody knows how long a software project will take, if it will deliver something that works or not, and if responsive support will materialize. Many if not most developers agree with this, even if they disagree as to the root causes.
One way to think of it is that it's a difference between a person and a process. A spreadsheet can be created and maintained by a person -- often the end user themselves. But since most people don't program, getting software written and maintained requires a process.
The same is true of driving a car versus flying in an airplane. When you drive, you feel like you're the person who's in control of getting yourself to your destination. When you fly, you're placing yourself at the mercy of processes that you don't control and that are not all aligned with your interests.
> I have had my fair share backlash when trying to introduce replacement and complimentary tools. To replace excel, you not only need to advocate for it's usefulness and you need to be also be liable to the complaints from excel users. If anything goes wrong no how minor with the new tool, you are the one who introduced all these mess.
That is a universal issue of IT management: Any change implemented in IT systems (or anything else) will get that kind of resistance - bigger changes cause more resistance. If you change their primary tool, which they use all day and on which their jobs depend, expect a lot of resistance. The solutions:
1) Get management buy-in. They set the ceiling for acceptance - very few underlings will have more interest or make more effort than their management; if the manager dislikes it, doesn't use it, is disinterested, etc., then most others will do the same. Also, management is your support - when someone objects, they are not just objecting to you, they are objecting to their manager.
2) Get user buy-in. This is perfectly reasonable, if you think about it: Their tools, they use the tool all day, their jobs, probably they should have the biggest say. It means obtaining and utilizing their input from the start on what the tool should and should not do, etc. It may not be what you planned or expect; it may shatter your dreams; that's good - your fantasy was not aligned with reality. They provide the user end (e.g., 'don't change the keyboard UI that is in all our muscle memory and in all our documentation, and automated in macros'; 'of course you are migrating our macros, on which we depend, right?!'), you provide the technical end (e.g., 'we need a database with a spreadsheet UI and not a file-based spreadsheet').
3) Use all your development skills: test, mvp, deploy, iterate, etc.
4) Use some social intelligence: Deliver to the most interested, capable users first. Others will see them being uber-productive and want one too. Provide everyone with incredible, highly responsive support. Etc.
My first career was at a fintech company that sold auditing data. All of our clients were accountants, auditors, lawyers, etc.
Every single person worked in Excel. It didn't matter how old our website was, how crappy our code was - all that matter was that we generated a CSV.
I used Excel often - I think many people underestimate how powerful Excel is and how much of finance / auditing relies upon it.
My co-workers used to joke that the world runs on Excel. That some of the most important economic documents are probably some .xlsx file named "economy-v3" that people send back and forth over email.
Where were you when I started writing my code ;_; I have also written a spreadsheet engine in Rust from scratch, for an app built with the iced GUI library!
I'll take a deep dive through your repo and compare notes later this week. Congrats on the huge lift!!
1) mit license
2) using plausible instead of Google analytics. Practically speaking, uBO is going to block both by default, but for non-tech users this is great.
3) appreciate how the app respects your pc when the web app is running in the background. Very low footprint, no random CPU spikes or anything.
nice project ! and attempt to modernize the spreadsheet tech stack. be warned though, that the feature-set of the modern spreadsheet is gigantic, with tentacles in hundreds of nooks and corners. Any attempt to play catch-up is a losing proposition. Hence you could position it so as not to directly compete with excel - in areas that are new or emerging.
Very cool library. I like the goal of Excel support (it truly is an incredible platform). A couple of questions:
1) Any plans for programmatic manipulation of pivot tables? Looking across the Python ecosystem, outside of xlwings (which essentially requires FFI manipulation of a running instance of Excel), nothing else makes it possible. It does look like some .NET Excel libraries support it.
2) Will there be ability to use the engine as library? Would love to use something like this through Python bindings.
Thanks for your great work! I’d love to hear your thoughts on a recent “brainstorm” a few of us had here on HN about spreadsheets. How does this resonate with you? [1][2]
I haven't looked into the source for your project, but am curious if you are integrating any kind of existing engine/backend (Polars is what I am thinking) into it, or if that is even possible.
What a cool project! I intend to dive in and I'm sure I'll have questions as I do. Are you active in Discord? The invite link on the bottom of ironcalc.com isn't currently valid.
It’s a great ambition to replace Excel and many went down this path before. Congratulations to even attempting to achieve it and going this far to do it.
Excel compatibility, when fully realized, will remove the major obstacle to adoption. Given the current stronghold Excel has on the market.
Once that is achieved do you plan to offer a transition to more modern forms of calculations as vectors and arrays formula panels together with frozen sheets of raw data and output? Thus separating logic and model.
Also when your solution adoption will have grown much larger you should learn from the experiences Bavaria and CERN went through. Microsoft stronghold more often than not has nothing to do with technical prowess.
>Also when your solution adoption will have grown much larger you should learn from the experiences Bavaria and CERN went through. Microsoft stronghold more often than not has nothing to do with technical prowess.
Yeah, that is not our battle. At least not right now. Excel, and Google sheets, are and will be far more advanced than IronCalc. What we can do is to cater different needs. The focus is on lightweight and open source. Given the billions of spreadsheets out there I wouldn't be surprised if for a small percentage of them IronCalc is a better option.
The reason for Excel compatibility is twofold:
* You can use your workbooks as the are
* You don't need to learn a new tool
> do you plan to offer a transition to more modern forms of calculations as vectors and arrays formula panels together with frozen sheets of raw data and output?
cool project, but I don't particularly like "The democratization of spreadsheets" as a catchphrase. Like, what does that even mean? If by "democratization" you mean like, more able to be used, well anyone can go download LibreOffice or for the web use CryptPad's Spreadsheets, and if you mean that it's more open, well both of those are open source. Is this project specifically run democratically or something? It just seems like a really bad use of meaningless marketing terminology.
I think it's the general idea that free (as in speech) software is "democratic". Even if the project does not do what you want you can always modify or fork, i.e. make changes privately for your own use or even distribute them. Closed source software is like totalitarianism, the leader or leading party knows what is best for you.
Democracy is not the best analogy, free software projects have BDFLs. The difference is more indirect, in democracies citizens have rights and freedoms. In non-democracies typically less so.
> Empowering SaaS Developers: Hundreds, if not thousands, of companies have implemented half-baked spreadsheets in their systems. IronCalc aims to provide these businesses with a superior, open-source alternative that enhances their SaaS applications.
I am currently creating SAAS and the idea of implementing LibreOffice on top of my offering just not gonna work.
A spreadsheet engine. It's a React app with a Rust backend, but it impressed me how snappy it was[0]. Of course, it's not nearly as feature rich as Google Sheets, not to mention Excel.
"backend" seemed to imply it was contacting some server, but https://github.com/ironcalc/ironcalc#early-testing claims (and the network tab confirms) it is just Rust compiled to wasm, no "backend" required
MIT or Apache 2 (player's choice) if anyone else has grown deeply suspicious about any "open source" HN headlines of late
Awesome project! Looking forward to following this.
I've been looking out for projects like this over the years and I'm glad to see that this one takes Excel compatibility seriously! Also love the choice of Rust and WASM!
For me Dynamic Array support is a blocker and I can't play with it until you've got that. Very glad to see that's your top priority though[1]! That and everything in the Logical, Lookup and Reference, and Information sections (in that order). That covers probably over 95% of my work and I spend most of my time in Excel.
What would be quite cool would be a small utility that one can run over ones workooks and that produces a csv or json file of all the Excel functions used and their count.
People could submit those and you'd get real usage stats of what functions people actually use in real world workbooks rather than guessing.
Users could also then use this to run a compatibility check to see if they could move over to your engine or not.
Agree with your comment. I almost didn't click on it because I wouldn't be interested in a C# or .Net project and was very pleasantly surprised. I don't love the name.
- I think you should report the rev somewhere. I can’t tell what the “current rev” is in GitHub or in the running demo.
- The roadmap says what’s coming in 0.5 (October 2024), but it’s not clear whether 0.5 is “done” or if that’s what’s running on the demo site today.
IronCalc would be awesome as an “embedded viewer” for data. I’m currently implementing an internal web app where I’d love to provide “monitoring” by just dumping a whole lot of transactional data from the db into a “live” IronCalc spreadsheet as a “view” tool that you could also do some data exploration in.
The 0.5 roadmap says “API to set and read values from cells” but it’s not clear to me whether it would be possible or not to embed it today and inject data at “start” time from JS. The scope of the current docs is “using it as a spreadsheet” but they don’t cover “how to embed it / integrate it”.
Love love LOVE! Would embed it TODAY as a data viewer could. :) Nice work! I am watching with bated breath!
Hi epmoyer. First things first, thanks!!
Second, the project hit HN before I could actually release MVP version 0.5.
But heck you know what they say about being proud of your product at the time of release.
I will be working in coming weeks to make it easy to embed and use at the time being you would need a bit of plumbing and programming.
You can use IronCalc as an "embedded viewer" but that is not were it shines. If you are not using Excel formulas there are many other lighter and simpler alternatives out there.
There is currently a well defined API to set/read values from cells but you are right is not yet documented (on it's way). I is possible to have data from the start.
I will add a CHANGELOG as soon as possible. I am still recovering from the huge impact this thread had.
This sounds like a cool project! Does anyone here knows how it compares to univerjs ?
I currently use univerjs to power the open source sql spreadsheet component I work on (https://github.com/sqlpage/sqlpage-spreadsheet/). My experience with it has been that it's very powerful, but quite difficult to use due to the boilerplate involved, the lacking documentation, and the fact that it seems to be developed mainly for the Chinese market.
Woah! I didn't realize luckysheets renamed to univerjs!
I think at the time being you should stick to univerjs as it is a finalized product. Once we reach version 1.0, IronCalc should be easier to deal with and you cold consider using one or the other.
Can't tell by the docs (but I've not dug in much yet) but... @nhatcher... here's a use case question.
Admins use the ironcalc UI to create their formulas. Is there a way to get those formulas to a backend and run the calcs on the server itself (separate from the user's browser) to get results based on input from other sources?
The UI half looks great so far. I have a colleague I was going to recommend this to, but they more need the 'run the formulas on the server' part more than anything else. They've got some custom Rust stuff running already, but having admins come up with their advanced formulas, then translating that to server code - that takes the time. It seems they may be able to use this to have this handle both ends of the workload, without the translation layer.
Congratulations, this is awesome. One of those "why hasn't someone done this already?" projects.
I can see this becoming transformative and superseding Excel, which is a bold claim to make. But this is compliant (with Excel), performant, extensible, free, and in-browser. This could easily become almost an emacs-level editor.
Think of the interfaces that could be built to this in this?
Why would there be any reason for this to kill excel? Seriously you should try to replace excel entirely rather than merely get a better version of it. If you want to get a better excel just buy excel and actually learn how to use it.
When I worked at the Excel team our motto was Excel is the second best tool for everything.
I'm excited to see more players in this space though, all the standards are open and there are decent libraries with decent licenses that exist. A lightweight LibreOffice alternative would be neat and something truly open source and embeddable (MIT) is great.
Had a comment here about larger values/arbitrary precision (e.g. 74829901923401860/14408150751351922) and realised that it isn't choking on the number but it seems to error if I paste in values? In Firefox:
I was recently looking for a Linux alternative to LibreOffice Calc and couldn't find something that meets my needs (mostly CSV import/export, filtering and pivot tables). It's great to see this new contender showing up and even if it lacks major features what's there so far looks very good. This is promising! Congrats for the good work and best wishes for what's to come.
Thanks. I am thinking a lot about this recently. We will definitely support a scripting language, or rather several scripting languages. VBA won't be one of them, I think.
I wouldn't want to create a language just for this. Maybe use a language like Lua or perhaps Rhai[0]. By design extending and embedding IronCalc should be very easy. Work in this direction will not start in the next 9 months though.
The idea is to have an egine that is clearly separated from the various "skins" like a React, Vue, a TUI or a desktop app. At the moment the React component is a bit difficult to use in isolation. I need to provide a npm package that folks can install
I am quite excited about the new era of WASM webapps - those are cross-platform & fast. Unlike traditional desktop programs those are sand-boxed & unlike mobile apps the distribution channels are open ("side-loading" by default).
Nice work. Clicked around in it, some default features I'm used to are missing, like clicking on a row or column header to select the whole thing, or double click the resizer between two columns to autosize the column to content length.
At the time of writing, you can use Rust, Javascript and Python bindings.
The React front-end communicates with wasm compiled from Rust.
Java bindings are planed but not in the next ~6 months. A client/serve architecture (like libreoffice does) with IPC or sockets might be a good idea for languages that we don't provide bindings to. also not planned for the next 6 months
It's a cool project, but wow is the top of the page just absolute buzzword salad!
> The democratization of spreadsheets
> Empowering Everyone with Advanced, Open-Source Spreadsheet Solutions
It's a really fast spreadsheet engine that runs entirely in the browser and is fully open source. That's all the sales pitch I'd need, but I'm a developer...
So, serious question: who is this kind of marketing targeting?
I think using the word "democratization" is the main issue, how does that even make sense in software? Who is doing the voting? You just "vote" by forking...? I don't get it, you also "vote" by using Microsoft Excel.
anyfactor|1 year ago
I sincerely commend the enthusiasm, but working in the industry as the "excel expert", I think most outsider does not understand the "cult" aspect of Excel.
Excel works. That is it.
Trying to replace excel with anything will be percieved as replacing a calculator with some alien substance that does math. Excel is like Pencil and Pen. You can not replace it.
Excel is not software it is a tool.
I have had my fair share backlash when trying to introduce replacement and complimentary tools. To replace excel, you not only need to advocate for it's usefulness and you need to be also be liable to the complaints from excel users. If anything goes wrong no how minor with the new tool, you are the one who introduced all these mess.
So, in practice what usually happens is that, when people hit UX challenges they go to a consulting firm and commission a backoffice software to address the Excel limitations. Some business may pay for nocode but that is very rare. They go to backoffice software firm and they build a CRUD software that is now not replacing Excel but compliments it.
nhatcher|1 year ago
> Any sufficiently complicated startup or young company contains an ad hoc, informally-specified, bug-ridden, slow implementation of 10% of Excel.
Maybe we can use IronCalc for those cases?
atoav|1 year ago
Things will get real when your orgs problems/needs grow from something that was totally cool to do with spreadsheets to something requiring higher complexity, performance, resilience, testability, coordination, ... — and the point at which you cross over into the latter is not always clearly marked.
It would for example not be advisable to use Excel sheets as a replacement for a distributed database of central importance, unless your org is a lemonade stand with 3 employees.
I would also prefer maintaining a python script with written tests over maintaining an Excel file containing complex business logic, but maybe that is just personal perference.
Don't get me wrong here, Excel is amazing and we should all use it where it shines. But as with all tools we need to be aware of the fact that they heavily color the way we look at problems, as expressed by Maslows famous aphorism: "If the only tool you have is a hammer, you tend to see every problem as a nail."
Good engineers should not be blinded by their tools, but accutly aware of their limitations and know which to use when. Just like with hand tools you could probably also just hammer a nail in using a shovel or "drill" a hole using a screwdriver and Excel is very versatile in those regards: it can get you very far without being the best solution, a bit like a swiss pocket knife.
delusional|1 year ago
Heh, where were you 6 month ago when my team was pitching some of our traders on replacing a system they'd built for balancing their strategy. It was built in excel of course, but what surprised me was the resistance to changing it at all. They all hated the thing, it was slow and crashed often, and right in the middle of the difficult part of the work too. Working with it was a terrible experience, even for people used to medium business enterprise crap. Yet they refused to consider any alternative to building some CRUD around it that would extract the worst parts.
The issue we faced was that there was no way we could contribute to this excel monster while still following the risk tolerance of our department. It's not that we're opposed to building something that is probably a bad idea, if it helps build relationships that let us build something better later. It's more that as soon as IT touches it, we get to own every legal aspect of it too. So they ended up with an external consultant that built them what was essentially an external database they could query, which was then supplied with data by some program somewhere.
It ended exactly as you say. They got a back-office firm to develop some one-off hack that alleviated the immediate problem, without replacing excel.
skissane|1 year ago
Indeed, I have hardly used Excel in years. I do use Google Sheets at work, where they are used for adhoc tracking by engineering, product management, project managers, etc.
Our son who is 11, he uses Google Sheets - and I know he has used Apple Numbers in the past too. I’m not sure if he even knows what Excel is.
wslh|1 year ago
I think this is where IronCalc like software could thrive: finding a non-complete competition to Excel, and Google Sheets that does the other part of the work better.
dudus|1 year ago
I proposed the CRUD solution to complement their use case but the solution was not received well. They couldn't allocate computer resources to host the solution within their infra easily. So they pushed back and asked us to develop some Excel add-on, PowerBI based dashboard or some kind of Microsoft no code I can't care enough to remember the name.
I had no experience with PowerBI at all. But had a lot of fun learning about it. Great ideas on that piece of software but ultimately it's too hard for Excel users and too finicky for real data processing other than very simple stuff.
It failed spectacularly in the end. We could never make it work reliably and the customer also skimped on the license and didn't want to add some extra features M$ft charges on the side such as power automate and some "advanced instances". Which meant the software runs have to be manually triggered on the managers machine to update the dashboards. It was nasty.
The end result is completely unmaintainable. A collection of "M" scripts inside a power bi dashboard, it pulled data from multiple spreadsheets from specific locations, joined and processed the data, and generated reports. The scripts runs on a Thinkpad so it needs to fit inside the machine constraints of memory and processing. Some of the files are manually updated so very easy to mess up the format or permissions to the point the whole thing broke.
It was a cool experience I'm never repeating
analog31|1 year ago
Nobody knows how long a software project will take, if it will deliver something that works or not, and if responsive support will materialize. Many if not most developers agree with this, even if they disagree as to the root causes.
One way to think of it is that it's a difference between a person and a process. A spreadsheet can be created and maintained by a person -- often the end user themselves. But since most people don't program, getting software written and maintained requires a process.
The same is true of driving a car versus flying in an airplane. When you drive, you feel like you're the person who's in control of getting yourself to your destination. When you fly, you're placing yourself at the mercy of processes that you don't control and that are not all aligned with your interests.
mmooss|1 year ago
That is a universal issue of IT management: Any change implemented in IT systems (or anything else) will get that kind of resistance - bigger changes cause more resistance. If you change their primary tool, which they use all day and on which their jobs depend, expect a lot of resistance. The solutions:
1) Get management buy-in. They set the ceiling for acceptance - very few underlings will have more interest or make more effort than their management; if the manager dislikes it, doesn't use it, is disinterested, etc., then most others will do the same. Also, management is your support - when someone objects, they are not just objecting to you, they are objecting to their manager.
2) Get user buy-in. This is perfectly reasonable, if you think about it: Their tools, they use the tool all day, their jobs, probably they should have the biggest say. It means obtaining and utilizing their input from the start on what the tool should and should not do, etc. It may not be what you planned or expect; it may shatter your dreams; that's good - your fantasy was not aligned with reality. They provide the user end (e.g., 'don't change the keyboard UI that is in all our muscle memory and in all our documentation, and automated in macros'; 'of course you are migrating our macros, on which we depend, right?!'), you provide the technical end (e.g., 'we need a database with a spreadsheet UI and not a file-based spreadsheet').
3) Use all your development skills: test, mvp, deploy, iterate, etc.
4) Use some social intelligence: Deliver to the most interested, capable users first. Others will see them being uber-productive and want one too. Provide everyone with incredible, highly responsive support. Etc.
unknown|1 year ago
[deleted]
unknown|1 year ago
[deleted]
cyrialize|1 year ago
Every single person worked in Excel. It didn't matter how old our website was, how crappy our code was - all that matter was that we generated a CSV.
I used Excel often - I think many people underestimate how powerful Excel is and how much of finance / auditing relies upon it.
My co-workers used to joke that the world runs on Excel. That some of the most important economic documents are probably some .xlsx file named "economy-v3" that people send back and forth over email.
manvillej|1 year ago
Data intake, preprocessing, solving performance limitations, executing automated decisions.
If it’s just a “better excel” it’s not better enough.
Andrew_nenakhov|1 year ago
paulddraper|1 year ago
Google Sheets is used for all sorts of things.
Does it REPLACE Excel? No, not fully. But a lot of the time, it does.
nhatcher|1 year ago
airstrike|1 year ago
I'll take a deep dive through your repo and compare notes later this week. Congrats on the huge lift!!
ericra|1 year ago
1) mit license 2) using plausible instead of Google analytics. Practically speaking, uBO is going to block both by default, but for non-tech users this is great. 3) appreciate how the app respects your pc when the web app is running in the background. Very low footprint, no random CPU spikes or anything.
Wish you guys the best.
readthenotes1|1 year ago
I'm not sure how unusual I am, but would be interested in knowing:)
bsenftner|1 year ago
https://bossanova.uk/jspreadsheet/v4/ which is the open source version of
https://jspreadsheets.com/
Serious question. I base a lot of work off the open source jspreadsheet. Curious about yours.
negoutputeng|1 year ago
trivia: js based https://ethercalc.net/ is in turn is derived from https://github.com/DanBricklin/socialcalc written by the spreadsheet inventor dan bricklin
yowlingcat|1 year ago
1) Any plans for programmatic manipulation of pivot tables? Looking across the Python ecosystem, outside of xlwings (which essentially requires FFI manipulation of a running instance of Excel), nothing else makes it possible. It does look like some .NET Excel libraries support it.
2) Will there be ability to use the engine as library? Would love to use something like this through Python bindings.
wslh|1 year ago
[1] https://news.ycombinator.com/item?id=42027356
[2] https://news.ycombinator.com/item?id=41970554
eviks|1 year ago
Do you have a detailed list tracking compatibility with Excel?
Do you have any great ideas where you can surpass it (in one way you can use yours without UI)?
madjam002|1 year ago
hitradostava|1 year ago
arjunlol|1 year ago
fatih-erikli-cg|1 year ago
alexk101|1 year ago
dpe82|1 year ago
hotbutterscotch|1 year ago
sunshine-o|1 year ago
Hashex129542|1 year ago
You've added xlsx format to export. Is it legally allowed?
echoangle|1 year ago
wuming2|1 year ago
Excel compatibility, when fully realized, will remove the major obstacle to adoption. Given the current stronghold Excel has on the market.
Once that is achieved do you plan to offer a transition to more modern forms of calculations as vectors and arrays formula panels together with frozen sheets of raw data and output? Thus separating logic and model.
Also when your solution adoption will have grown much larger you should learn from the experiences Bavaria and CERN went through. Microsoft stronghold more often than not has nothing to do with technical prowess.
evanjrowley|1 year ago
Can you elaborate on those experiences?
nhatcher|1 year ago
The reason for Excel compatibility is twofold:
* You can use your workbooks as the are * You don't need to learn a new tool
> do you plan to offer a transition to more modern forms of calculations as vectors and arrays formula panels together with frozen sheets of raw data and output?
So far, nothing beyond Excel's compatibility
thezipcreator|1 year ago
nhatcher|1 year ago
https://github.com/ironcalc/ironcalc.github.io/issues/14
As I said somewhere else I had really bad marketing skills. Maybe I should talk to someone who really knows what they are doing :)
The catchphrase was decided in 5 seconds when I was sending a proposal to the nlNet and stuck.
Thanks for the feedback!
usr1106|1 year ago
Democracy is not the best analogy, free software projects have BDFLs. The difference is more indirect, in democracies citizens have rights and freedoms. In non-democracies typically less so.
icemelt8|1 year ago
rizky05|1 year ago
> Empowering SaaS Developers: Hundreds, if not thousands, of companies have implemented half-baked spreadsheets in their systems. IronCalc aims to provide these businesses with a superior, open-source alternative that enhances their SaaS applications.
I am currently creating SAAS and the idea of implementing LibreOffice on top of my offering just not gonna work.
kaathewise|1 year ago
[0]: https://app.ironcalc.com/
mdaniel|1 year ago
MIT or Apache 2 (player's choice) if anyone else has grown deeply suspicious about any "open source" HN headlines of late
nhatcher|1 year ago
Thank you for posting!
nine_k|1 year ago
Of course there's a lot missing, but what's interesting is what you've reached for and could not find.
snthpy|1 year ago
I hope the backend engine can be used standalone embedded in other apps.
snthpy|1 year ago
I've been looking out for projects like this over the years and I'm glad to see that this one takes Excel compatibility seriously! Also love the choice of Rust and WASM!
For me Dynamic Array support is a blocker and I can't play with it until you've got that. Very glad to see that's your top priority though[1]! That and everything in the Logical, Lookup and Reference, and Information sections (in that order). That covers probably over 95% of my work and I spend most of my time in Excel.
1: https://docs.ironcalc.com/
snthpy|1 year ago
People could submit those and you'd get real usage stats of what functions people actually use in real world workbooks rather than guessing.
Users could also then use this to run a compatibility check to see if they could move over to your engine or not.
nhatcher|1 year ago
cultureulterior|1 year ago
snthpy|1 year ago
nine_k|1 year ago
seanw444|1 year ago
phonon|1 year ago
https://github.com/logisky/LogiSheets
https://github.com/natefduncan/excel-emulator
https://github.com/jiradaherbst/XLFormula-Engine
https://github.com/omid/formula
https://crates.io/crates/df-web/0.1.28
nhatcher|1 year ago
I guess I have some reading to do!
What is the last one?
phonon|1 year ago
https://learn.microsoft.com/en-us/office/vba/excel/concepts/...
nhatcher|1 year ago
Not yet, there is heavy research in that direction. I will write on this soo-ish
> Do you take volatile functions into account?
Yes, for instance RANDBETWEEN and NOW are implemented. Things like `IF(RANDBTWEEN(1, 500)> 200,A1, A2)` work fine
Thnaks
epmoyer|1 year ago
- I think you should add a CHANGELOG.md, so people can see progress/features evolve (https://keepachangelog.com/en/1.1.0/)
- I think you should report the rev somewhere. I can’t tell what the “current rev” is in GitHub or in the running demo.
- The roadmap says what’s coming in 0.5 (October 2024), but it’s not clear whether 0.5 is “done” or if that’s what’s running on the demo site today.
IronCalc would be awesome as an “embedded viewer” for data. I’m currently implementing an internal web app where I’d love to provide “monitoring” by just dumping a whole lot of transactional data from the db into a “live” IronCalc spreadsheet as a “view” tool that you could also do some data exploration in.
The 0.5 roadmap says “API to set and read values from cells” but it’s not clear to me whether it would be possible or not to embed it today and inject data at “start” time from JS. The scope of the current docs is “using it as a spreadsheet” but they don’t cover “how to embed it / integrate it”.
Love love LOVE! Would embed it TODAY as a data viewer could. :) Nice work! I am watching with bated breath!
nhatcher|1 year ago
I will be working in coming weeks to make it easy to embed and use at the time being you would need a bit of plumbing and programming.
You can use IronCalc as an "embedded viewer" but that is not were it shines. If you are not using Excel formulas there are many other lighter and simpler alternatives out there.
There is currently a well defined API to set/read values from cells but you are right is not yet documented (on it's way). I is possible to have data from the start.
I will add a CHANGELOG as soon as possible. I am still recovering from the huge impact this thread had.
Thanks again for the kind words!
lovasoa|1 year ago
I currently use univerjs to power the open source sql spreadsheet component I work on (https://github.com/sqlpage/sqlpage-spreadsheet/). My experience with it has been that it's very powerful, but quite difficult to use due to the boilerplate involved, the lacking documentation, and the fact that it seems to be developed mainly for the Chinese market.
nhatcher|1 year ago
I think at the time being you should stick to univerjs as it is a finalized product. Once we reach version 1.0, IronCalc should be easier to deal with and you cold consider using one or the other.
mgkimsal|1 year ago
Admins use the ironcalc UI to create their formulas. Is there a way to get those formulas to a backend and run the calcs on the server itself (separate from the user's browser) to get results based on input from other sources?
The UI half looks great so far. I have a colleague I was going to recommend this to, but they more need the 'run the formulas on the server' part more than anything else. They've got some custom Rust stuff running already, but having admins come up with their advanced formulas, then translating that to server code - that takes the time. It seems they may be able to use this to have this handle both ends of the workload, without the translation layer.
Is that something supported, or even feasible?
Thanks!
nhatcher|1 year ago
eointierney|1 year ago
I can see this becoming transformative and superseding Excel, which is a bold claim to make. But this is compliant (with Excel), performant, extensible, free, and in-browser. This could easily become almost an emacs-level editor.
Think of the interfaces that could be built to this in this?
I'll be sharing this with every student I know.
And the name is a winner.
Aeolun|1 year ago
I think this one is fairly clear. It’s because it’s a massive amount of work with a not necessarily large payoff for yourself?
I think some of these basically get made when someone gets too annoyed something similar doesn’t exist.
mhh__|1 year ago
nhatcher|1 year ago
This is out of date, and not a priority ATM, but we will have a TUI for it:
https://github.com/ironcalc/TironCalc
inglor|1 year ago
I'm excited to see more players in this space though, all the standards are open and there are decent libraries with decent licenses that exist. A lightweight LibreOffice alternative would be neat and something truly open source and embeddable (MIT) is great.
jvanderbot|1 year ago
dwroberts|1 year ago
Uncaught RuntimeError: unreachable executed pasteCsvText assets/index-BxqQcmeI.js:40
nhatcher|1 year ago
I just added csv copy/paste, most likely an error there. We don't support arbitrary precision arithmetic but I would like to.
openrisk|1 year ago
Interesting to see all those different takes on the spreadsheet metaphor.
nhatcher|1 year ago
I think the take is a tad different form pysheets. Cool tool though!
jeremyscanvic|1 year ago
iamthejuan|1 year ago
nhatcher|1 year ago
[0]: https://github.com/rhaiscript/rhai
microflash|1 year ago
The docs currently focus on the engine part but I’m more interested in the integrations (for example, with Java, Angular, Vue etc).
I’m currently on mobile but I’ll have to take a look at your React example to see if I can write a working Angular or Vue example.
nhatcher|1 year ago
afiodorov|1 year ago
bonoboTP|1 year ago
8n4vidtmkvmk|1 year ago
nhatcher|1 year ago
paradite|1 year ago
I couldn't find docs on how to use it in languages other than rust. Perhaps via IPC?
nhatcher|1 year ago
The React front-end communicates with wasm compiled from Rust.
Java bindings are planed but not in the next ~6 months. A client/serve architecture (like libreoffice does) with IPC or sockets might be a good idea for languages that we don't provide bindings to. also not planned for the next 6 months
howthisends|1 year ago
nhatcher|1 year ago
Right now you can't just `npm install ironcalc`, but hopefully that will be in place in a month from now.
neoyagami|1 year ago
HexDecOctBin|1 year ago
nhatcher|1 year ago
majkinetor|1 year ago
Consider making formula engine standalone as it might be used in other contexts, like Markdown or html tables.
unknown|1 year ago
[deleted]
fithisux|1 year ago
sbenson246|1 year ago
dangsux|1 year ago
[deleted]
franga2000|1 year ago
> The democratization of spreadsheets > Empowering Everyone with Advanced, Open-Source Spreadsheet Solutions
It's a really fast spreadsheet engine that runs entirely in the browser and is fully open source. That's all the sales pitch I'd need, but I'm a developer...
So, serious question: who is this kind of marketing targeting?
nhatcher|1 year ago
This project targets both end spreadsheet users and developers. In its first an engine (a Rust crate) then a full fledged product.
FWIW, I'm over them moon this project is getting some traction :)
hcarvalhoalves|1 year ago
Nathanba|1 year ago