Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Turn an Excel file into a web application (keikai.io)
386 points by visionPASSION on May 21, 2019 | hide | past | favorite | 175 comments



That link to ECB FX rates is the best thing on the page. A stable, free non-commercial source of market data is hard to find.

https://www.ecb.europa.eu/stats/policy_and_exchange_rates/eu...



Awesome, cher bro.


You'll then appreciate this (if you need live quotes) https://www.freeforexapi.com


Not to be too nitpicky since it looks like the author is a developer and not a writer, but referring to the person building the spreadsheet as the "admin lady" throughout the piece sounds a bit awkward. Maybe just give her a made-up first name?


Looks like the author is from Taiwan, where the vernacular 'lady' is a common suffix for admins. Although it's good feedback for someone marketing to a non-Asian culture.


I am from Taiwan but have trouble reverse-translating this back to Chinese. What is the vernacular title you are referring?


That's oddly specific. It's just English, doesn't read out of place to me at all (British).


I haven't tried this yet, but if it works well, the implications towards rapid Business Intelligence development are great. In the past, when a user has needed some 15-year-old, macro-infused spreedsheet turned into a more streamline, business-wide process, any data entry components would require roping in webdevs to get the job done, as BI developers don't usually come with a web skillset. The idea that BI developers could just use the spreadsheet to generate a web app not only cuts down the expertise needed, but also solves the problem of training old-timers to use the new process.


Excel and its open source variants achieved total market dominance by providing a seemingly future proof technology platform and a generally maintainable (usually by a single human) solution for business. The biggest hurdle with converting these programmable documents into applications has always been long term the maintainability of the replacement solution. Even Microsoft had it's fair share of failures developing simple programmable database solutions (Access, Visual Fox Pro) to meet the needs of businesses and governments that "just needed a little more than what Excel could provide". It's a marketing pitch that never fails because it underplays the cost of maintenance of the new solution and the real value of the spreadsheet.

I welcome solutions that serve this need for "better than excel" without succumbing to its pitfalls but I'm not holding my breath. Even this article just outlines a solution that could be implemented in Excel with a little extra knowledge from the user, making it "no better than excel" for the specified use case.


Interestingly, Excel et al. achieved that status without the "no-code/low-code" mantra that is the rage in sales these days, where "citizen developers" are expected to relish in GUI editors severely limited in the logic they can accomplish.

On a turing-completeness spectrum, they live on the opposite half of where VBA+formulas stand proudly. Therefore, it is no surprise that for anything beyond "out-of-the-box", it is expected that an experienced IT developer/consultant will be needed to figure something out.

A decent reason to disallow custom code is that these platform are to be upgraded regularly, yet every major version seems to bring its lot of breaking changes while my decade-old macros still run like a champ. Oh the irony.


What you describe here is exactly what we are doing with a tool called EASA. It enables us to very quickly create web apps using an existing spreadsheet as the logic module. You don't need to be a dev to do this - our BIs find it straightforward - the closest you get to code is a bit of SQL.

It works well - we have successfully applied this to about 20 really critical spreadsheets for functions such as pricing, deal valuation, risk analysis, and even for engineering analysis. Users simply use a web app (that can look like the underlying spreadsheet - or not). The system is also integrated with SAML, so authentication is there, and you can also integrate the apps you create with 3rd party systems - we are looking at launching Excel-based pricing apps directly from SF.com, for example.

Anyway, the site is https://easasoftware.com/ - there are some vids there which probably do a better job of explaining it than I have done here. It's not just about putting an app on top of a spreadsheet, but really putting an app on top of processes that involve spreadsheets. And you can use things other than Excel as the logic module, like Matlab, R, Python - in fact we are dabbling with using EASA to deploy ML models created in Python.


I don't know if a BI Developer with a web skillset would solve this problem. I worked as a BI Developer and was solely hired because I had mucked around with the COGNOS and its API's and written a few analytics based web apps. The reality was that the rest of the team didn't want to support anything outside COGNOS/MicroStrategy nor did the project managers foresee web apps as a solution to any problem.


Companies like Celigo created an industry out of allowing Excel users to shoehorn pretty much anything into a spreadsheet and then have it interact with their major accounting/ERP systems.


Lol, instead of one developer now you need two developers one who fucks with spread sheets and one who jiggers the shitty tool to make the web app.

See basically "no dev needed", perfect for old timers who can't code. Or not.

private void placeAnOrder() { listSheet.unprotect(""); Range costCell = spreadsheet.getRangeByName(exchangeSheet.getSheetId(), COST_CELL); if (!costCell.toString().isEmpty()) { Double cost = costCell.getRangeValue().getCellValue().getDoubleValue(); if (cost > 0) { Double amount = spreadsheet.getRangeByName(exchangeSheet.getSheetId(), "amount").getRangeValue().getCellValue().getDoubleValue(); Range orderTable1stRow = spreadsheet.getRange(BOOK_NAME, listSheet.getSheetId(), "C6:G6"); orderTable1stRow.getEntireRow().insert(Range.InsertShiftDirection.ShiftDown, Range.InsertFormatOrigin.RightOrBelow); orderTable1stRow.setValues(DateUtil.getExcelDate(new Date()), cost, destinationCurrency, destinationRate, amount); } } listSheet.protect(PROTECTION); }


Can you please not be snarky in HN comments? You have a good point here, but please follow the site guidelines.


Ya I'll delete it if I can.


It was a snarky comment, but also amusing.


I thought it was clear in my original comment that it would require more than one developer before - one for the BI process and at least one for the data-entry component. Given that most BI teams don't have a web developer, that also spreads the process over multiple teams, which can slow down maintenence. And I'm not sure why you think it'd take a whole other developer to manage this tool. BI developers are used to picking up new tools and languages (my BI job requires that I know how to use SQL, python, MDX, and C#, and numerous third-party applications).

And when I'm referring to "old timers", I'm referring to users, not the developers. Why would a user need to understand that snippet? Are we even talking about the same thing?


I can see exactly what that code is doing on a first read. It's pretty procedural. I don't like the range reference.

> "C6:G6"

I think the bigger problem is it's not going to be a developer maintaining this. It's going to be a pretty literate VBA user and nothing will go wrong. Inevitably they will move on and pass over the code, the 'user application' to someone who will feel reassured they can read it too, but then when it comes time to make a change, they won't be able to. And then it'll be passed over again and become a black box.

A developer (if there's funding) will not like picking up something undocumented, then it becomes a project (less funding). The process, a magical black box that may or may not have stopped working also loses documentation. Governance is lost. Particularly but not exclusively in financial applications, potential for misuse and loss, either accidentally or fraudulently, has been introduced.

So, the above looks (mainly) OK to me. But only because I know to insist on maintaining a manual backup or otherwise maintaining knowledge of how the black box works.


The problem usually isn't the webdevs or the BI developers but the fact that it's logical thinking and engineering skills that make a supportable application. Without those skills, bad software gets made, and bad Excel spreadsheets can be just as bad as bad webapps.


You can do some of these tricks with Excel 2016 or later and SharePoint Enterprise or Office 365 -- which many corporations already have.

You can embed an auto-updating Excel file in a SharePoint webpage using a "webpart" that renders as HTML. (Microsoft is getting away from web-rendering Excel with Silverlight,and allowing more functionality without the need for a browser plug-in.)

The trick is to setup the Excel data connection using the "Get External Data" -> "From Other Sources" -> "OData Data Feed" and not use the "Data Connections / Microsoft Query" method. Note: Microsoft Query connections won't update server side, the Excel file needs to be opened, data connections refreshed, and re-saved.

It does require a bit of Excel expertise to setup, but there is no need to create a Java application to get it to run.


I'd rather have my Java expertise than Excel expertise.


Nice! Spreadsheets have a lot of advantages over coding your own website, especially for people that don’t have the skills.

I made an app called https://Sheet2Site.com which takes your spreadsheet of items/objects and translates it into an app, with filters.


Wait so what exactly is it?

Components of different types, corresponding to rows of different schemas? Where first column says the type? Or is it one sheet per type of object?

And then you import them? And have a page with a bunch of components with data from the sheet?


There's a two minute intro video on the homepage that does a very good job of demonstrating the product.



If you'd like to use google sheets with React for free, I wrote this: https://appendto.com/2018/08/the-simple-stack-a-primer-on-us...


This Content Is Only For Subscribers Please subscribe to unlock this content. Just enter your email below.


Delete the

  class="onp-sl-overlap-box onp-sl-transparence-mode onp-sl-great-attractor-theme"
element. Ta-dum!


The first step should have been to call the bank. For businesses, banks usually have a website that she could log into to: 1) get more up-to-date or more indicative rates, 2) execute the trade. Will save dev & maintenance time.


Maybe they are the bank and everyone is calling them?


They invented Google sheets api for excel. I've built apps using Google sheets as the dB (via api). Slow but work well enough for personal tools


It amazes me to see companies big and small that basically run on Excel.

Why do you think Excel is so ingrained into all kinds of companies and processes?


    > Why do you think Excel is so ingrained into all kinds of ...
Because it works.

Programmers underestimate and put down excel all the time, but I think it's actually how many projects they end up with get started.

Someone had a problem, solved it for themselves using excel, got noticed, expanded the solution to other problems until the excel solution itself became the problem and then... it ends up as a project for you.

There's nothing wrong with that. It does the job, and it's not like the first course of action when there's a problem should be to assemble a scrum team with a cast of characters like a sitcom, and blow a million dollars to implement a bespoke software solution. Sometimes excel is just enough (and then some).


My first job consisted in updating Visual Basic code behind an Excel file that specified the hydraulic circuit for an aircraft. It was a simplified version of the circuit for use in a simulation that was used to calculate pressure loss based on several valve and pipes parameters. The results were exported to a txt file to be loaded by the simulator.

Also in the same project I remember another Excel file with mechanical calculations that actually updated a nice graphic that simulated all the linkages and different extensions of the actuators and computed forces at different points. The unholy alliance of elegant Lagrangian mechanics with Visual Basic.

I hope to never touch Basic again but it was a valuable lesson about getting things done and I'm glad I took it so early in my career.


Because spreadsheets are at the sweet spot of most complicated programming language that non-technologists can reasonably be expected to learn on their own.

Because you should have a reeeealy good justification to write a single line of code for something that can be done in Excel much cheaper, and mostly you don't.


I guess what I'm trying to say is: it's a feature, not a bug, and it's really important for entrepreneurs to understand this because otherwise they might think they have no competition where their competition is with the most useful piece of software humanity ever produced.


You only need one tool to run your business. You can use Excel for bookkeeping, inventory, salaries, invoices, project management, budgeting, presentations, planning, forecast, brainstorming, timetable, to-do list and so on. If you would use a separate app for each of these you would go insane. Easier to learn one powerful tool than hundred small ones.

Take a look a talk by Joel Spolsky called You Suck at Excel. It's on YouTube. It will give you a quick glimpse into how Excel powerusers are using it and how fast you can create something useful.


- Because a spreadsheet is the best UI for many business applications (far better than an HTML table on a webpage).

- Because Excel allows the user to (i) perform ad-hoc calculations, (ii) audit the input and outputs, and (iii) easily modify the functionality in real time.

- People don't like filling out forms and most web apps are basically filling out forms.


Points 1 and 2 sound like a REPL.

Say we had a REPL that also had a table (like excel, each cell has an address... a 2D stack if you will).

Say we interact using a mouse to select a cell or in the REPL to specify what cell we want to write to. Then, if we use a Lisp, we have tabular code and tabular data...

I might code this up for fun.


I don't know if it is what you are envisioning, but there is a spreadsheet program called Scheme In A Grid (Siag) [1] (part of Siag Office [2]).

From the "Introduction" [3] of its Online Documentation: "Siag is an X-based spreadsheet for Unix. It uses Scheme (a Lisp dialect) both for expressions and as an extension language, which makes it easy to create new functions (for native Lispers, that is). There is no requirement to know Scheme to use Siag, expressions can be entered in traditional spreadsheet syntax as well."

[1] http://siag.nu/siag/

[2] http://siag.nu/index.shtml

[3] http://siag.nu/online-docs/siag/intro.html


That's about what I imagined.


This is fine and dandy for small sheets, but if you're trying to build a sheet with multiple tabs, circularity, self-referencing IF statements, or lots of data, it will get really hard

Also, the #1 Excel rule in Wall Street is "never use your mouse"

IMHO, I think the better project is an equivalent of an RMarkdown / RStudio tool that generates a final report from a declarative set of instructions.


This exists already - Jupyter + Python + Pandas.

Or a spark interactive cluster with a notebook interface if you have more data than can fit on a single machine


I agree on points 1 and 2.

About point 3, isn't a spreadsheet basically a sophisticated form?


With formulas, custom formats, charts, etc. I think you can make a pretty solid case that Excel is far more than a form.

But even if you are just using it as a form, with bulk operations and keyboard shortcuts, it's usually much easier to fill out an Excel form vs. a web / app form.


That’s the point, why spend a week on some fancy web app if excel is already there?


In terms of UI, maybe, but not in terms of data.

I've seen it countless times. Somebody sends an excel file over e-mail and it is either an old outdated version of the file, or the persons that receives it hangs on to it for months as a source of reference.


With shared spreadsheets, this should become less and less of an issue going forward I would think.


With a conventional LAN with a fileserver, it is already easy to keep one spreadsheet. I don't think people can edit it together.

MS Access is much better for allowing simultaneous editing, especially (IIRC) if it's backed by an RDBMS, since it will use row level locks.

My previous employer had several databases with read-only web interfaces, but Access editing interfaces. They're very fast to develop, and support all the usual database features (constraints, keys, search etc), and could be set to load a form-editing view by default.


Excel allows for the democratization of technology, decreasing the barriers to entry and allowing for easier user experience.

People/teams/companies need different degrees of security, complexity, data, etc to their day-to-day operations. Someone may be interested in fiddling with data without others seeing, others may not want to share certain data broadly (answering your point below). Excel has served as a way to unify these needs for the most part. Some other options available tends to fall on the outer-layers, where excel may not be optimal and someone felt a specialized tool could improve speed/quality/cost.


It's accessible and empowers the individual.

Not everyone can code, but everyone can transform data in a spreadsheet and email it off to the next person.


I guess everyone accessing the same data at all times is not so valuable after all.

I've seen people having multiple versions of the same excel file and not remembering which was the last one...


I agree with most of the answers already posted about why Excel is so ubiquitous. To respond to this comment specifically, though, I'll just mention that we use a product called EASA to enable us put a web app on top of critical spreadsheets while also connecting to a database i.e. you can "de-couple" the data from the logic. There are some use-cases that describes this here: https://easasoftware.com/case-studies/amlin-reducing-risks-e...

...and here: https://easasoftware.com/case-studies/leaseplan-transforming...


Most programmers mistake the majority of the use of Excel as the creation of software. It isn't. It's mostly just construction of reports; sometimes just for one-off purposes.

I would theoretically be possible to write some software/reporting solution for every use of Excel but it wouldn't be an efficient use of resources.


And even the one-off reports represent the ability to do coding in tiny increments, precisely tuned to the demand. You can find some report from months ago and just open it up and add to it.

And as you're adding features, you instantly see the results; even as you type if you use the formula builder.

If you're working on any kind of software tooling, watching how people work with Excel is incredibly insightful.


Anybody being able to quickly make a significant change has its ups and downs, though... On more than one occasion I've caught word of some fancy spreadsheet a different team in a company has been using to draw insights for months, only to have nontrivial critiques of the source data or interpretation of the data that caused big changes in the results - stuff we would have ideally caught in a dev team's code review or QA workflow, but those processes are entirely bypassed when someone on the marketing team makes a spreadhsheet on their computer and dumps audience data from an advertising platform to seed it.

Spreadsheets are nontechnical users' version of "move fast and break things". Often times that can be useful, even essential, but there are many more cases where the primary utility of working that way is also the major flaw. Its faster than traditional report development because it skips any kind of review or QA.


> I would theoretically be possible to write some software/reporting solution for every use of Excel but it wouldn't be an efficient use of resources.

One company I know which did this was called "Actuate"; that was years ago, a quick googling shows they were bought, now called "OpenText" (?) - also had something to do with MongoDB and something called BIRT (Business Intelligence and Reporting Tools)...

Last I had any involvement with them for a company I worked for, it was with their reporting suite of tools; the company I worked for became a VAR for them, so anytime the tool had a bug, we could quickly get them in an IRC chat (told you it was a while back) and get a patch within a few hours to a day or so, depending on the issue.

The reporting system was fairly unique for the time; a basic WYSIWYG drag and drop editor, ala VB - and for more complex designs, a VB-like object-oriented "reporting design" language. It was essentially what VB6 should have been on the OOP side of things, but geared entirely toward reporting.

Reports could pull data from any number of different sources, from flat ascii files, to excel documents, to database engines, ODBC, etc.

One of the last things I heard from them, at a seminar they put on that my company sent me to in Santa Monica, was this idea of reforming people using Excel spreadsheets. They called the whole sharing and copying of such spreadsheets, such that there was no one single authoritative source - a "spreadmart". So they wanted to do something about it.

They came up with some kind of Java-based solution with a custom front-end that looked exactly like Excel of the time, worked just like it - pivot tables, whole nine yards. But it interfaced to a backend using these "business logic" modules. The idea was all instances of the "spreadsheet" could see the same data via those modules, and those modules would be created by an IT staff (or DBA or something), and anything interacting with them in a company would have to go thru them - reports, gui, excel spreadsheets, etc. The idea was to present one cohesive view of the data for all users.

I don't know where it ended up - if they launched the product or not (we were being given a sneak peek at it at the seminar - it was a pretty nice demo, overall for the time).

A couple of weeks after coming back from the seminar, the company let me go (I'd worked for them for about 8 years - missed the whole "dot-com" thing because I believed in this company so much - lived and learned).


Because it allows business to get shit done:

* No need to depend on an IT department which is already overbooked

* No need to find budget to fund a project

* No need to wait forever for the IT project to finish.

It gives an business person control, as they can do it themselves.


People use Excel because their manager wants them to use Excel.

Their manager wants them to use Excel because all their past managers have wanted them to use Excel. And so on.

Also, it's already there on all the computers.


Excel is declarative programming at its finest in practice.


it grew that way from inception. no inception -> no growth


Excel is a great tool for MVPs. It's much cheaper to test internal automation within a company with Excel than to build a entire platform, and some users can do it without the need for professional developers.


Congrats on the product! And what a coincidence, I'm about to launch a product that 'Turns a (bunch of) Word files into static website': https://docxmanager.com

We are both building a software basing on Office :)


See also https://github.com/michaelneu/webxcel a HTTP REST server built on top of Excel using VBA.


see also http://docs.xlwings.org/en/stable/rest_api.html for the Python version of the REST api. It doesn't require any VBA...


I didn't get if some of the code shown on the page is written as macros in the Excel file itself or are all of them external. Some of it like the cell protection stuff seemed like within the sheet?

It seems you still need to code the plumbing to get the sheet to work and serve it in some webserver, so you might not be able to get rid of your developers any time soon. And I didn't see any mention of it but it seems to be using Java (since it mentions mvn in the example's GitHub page).


This does not work for me on chrome 74. https://keikai.io/demo/editor


There is a known issue that the current beta version works with only 100% zoom level. Please check your browser and OS display zoom level and make it 100% to try it out before the fixed version is uploaded.


Speaking of zoom, it'd sure be nice if the keikai web site didn't kill zoom on the ipad. Pretty hard to see the screen shots, etc.


I can't wait to post what I've been building with Excel... from the reaction here, there's going to be some cringing happening.

One thing that I've found amazing is that if you build from scratch, you can have a cross-platform native desktop application that runs on software that's pretty much installed on all company computers.


"Cross platform". If cross platform means "pretty much installed on all company" then sure, but if it means ubiquitous among all platforms, then decidedly know. Excel is a huge piece of software, and it will probably never be cross platform, simply because it would take longer to port than the lifespan of the platform you were to port it to.


You're correct in saying that Excel is not cross-platform, but I'm referring to my application that lives on top of Excel. If the user is running Excel 16.0 64Bit, my app can run on Windows or Mac... does that not make it cross-platform?


If you're using React, I wrote this short tutorial on how to use Google Sheets in React apps: https://appendto.com/2018/08/the-simple-stack-a-primer-on-us...


> Turn an Excel file into a web application

Why?

Just because you can do it, does not mean you should.

There is another group of people who favor storing html pages in a db.


I think just wanting to do it is an excellent motivation for any intellectual pursuit.


Probably very similar to my desire to climb mountains. I just wanna see what it looks like on other side... aka curiosity.

If you’re only doing things other people tell you that you should, it’s worth taking some time for self-reflection to figure out why, and to find out what you _yourself_ are interested in.

Nature walks are great for that kind of thing :)


> ... my desire to climb mountains. I just wanna see what it looks like on other side... aka curiosity.

I wonder for some period of time why people like to climb, so I am excited by your answer. Given all the documentaries, news and travel ads, one can reasonably imagine what it looks like on the other side, don't we? Moreover, its geometry would remain the same in one's life time, for any specific mountain. One can get a pretty close idea from Google Map's terrain view. If one is not that into the details, like the precise curvature for each piece of a mountain, then they are largely the same.

I find myself not attracted to climbing for exactly the reason that they are not different enough from each other to satisfy my curiosity.


Ah, I used to think this way, it’s kind of a “peakbagger” mentality... bag the peak and move on. I’m all for seeing new mountains, and actually there is a _ton_ of variation in what you can find due to altitude, aspect, geographic location, etc etc. In the same valley I’ve walked down lush green forest on one side, and walked up dry baking desert on the other. I think the more I’ve trained my eye, the more unique qualities I see.

In the last year or two though I’ve realized that every climb is it’s own experience, even on the same mountain. The season, the plants and animals that come with it (or snow!), the weather that particular day, whether it’s a dry or wet year, the time of day. Some days you get turned back before you reach the peak. Maybe an avalanche happened overnight. Or you time it just right to get a view of sunset/sunrise/aurora/milky way. There’s always something new to learn even if it’s your 100th ascent. They actually change much more than you’d think.

I always thought it would be tough or impossible to, say, get all the 13ers/14ers in Colorado, or all the 4,000ers in the northeast. Now I realize I could spend a lifetime just getting to really know a handful of them. I find a strange comfort in that. Maybe I’m getting older.

Also, I love to ski and snowboard. Gotta get up to ride down! But I’ve never lost the desire to go around one more bend, or over one more peak, to see what I can see beyond.


By all means, please go after any pursuits that you like and also climb any mountain, that you wish. But, please do not write 'web' and 'excel' in the same sentence. There are bigger and better problems that we should be going after.


For this tasks, I like to use Google Sheets, runs in the cloud, have a good mobile app and runs in any device.


It's 2019 so you came along and took her job! In 2029, an android will come along and take your job!


Wait, isn't this particular problem solved with something like Google Sheets?

Other than privacy issues of course.


And you might want to still use it in x years time after Google decides to kill-off Sheets. You must be very wary when building anything on a Google service.


And what happens if Keikai fails long before Google gets rid of sheets? I get that Google has a habit of killing things off, but they are often things that are unpopular. Sheets is far from unpopular.


Yep, I agree it's always a risk; but if you were really concerned you could perhaps acquire a small outfit like Keikai and protect yourself. Your money just isn't interesting to Google so that's never an option.

And I don't believe it's true to say they've only killed unpopular things. Anything outside of the core business (and I will argue Sheets/Docs is outside) is up for the chop.


>but if you were really concerned you could perhaps acquire a small outfit like Keikai and protect yourself

Only one customer can do that, not all of them. As a small provider of enterprise software I would offer to sign a source code escrow agreement.


Yes, that's a far better way to protect your investment. Thanks for pointing that out.


So 4 million G Suite business customers and 70 million educational G Suite customers is outside the core business? I would say 74 million customers is a major part of any business.


G Suite is a lot more than just Google Sheets. And while it's not advertising, I think you are right and I was a bit hasty to declare it as outside their core business.

They do not have 74 million paying customers. However, I agree that the "free" version is safe for as long as the enterprise offering continues to do well (5 million PAYING users as of Feb 2019: https://cloud.google.com/blog/products/g-suite/5-million-and...).


Before Sheets was acquired by Google it was known as XL2Web, and it was strikingly similar to this. I can't find a lot of press, but see [0], for example - basically the same article, just with 2004-isms like using XML.

0: https://www.eweek.com/it-management/xl2web-package-lives-up-...


Not all websites are for general public application.


Neither are all Google spreadsheets


We used something like this to build configurators for clients at a previous job some 10+ years ago. I always thought they should have sold it as a service rather than just internal tooling the clients didn’t know anything about.


A simple solution to an easy problem, and you saved someone time. Good job!


The world's most popular database becomes the world's most popular web framework. Makes sense.


Your demos break or don't even load if page zoom level is set above or below 100% in Firefox btw.


I love spreadsheets. But not like this. Take a step back and really look at it. This is horrible web UI design. Even as just a spreadsheet it could use a lot of work. For example, it would probably function much better as a single sheet rather than having to cycle through three screens for each conversion.


Excel is fine until you have to work with nested data structure/relationship.


Or until a member on the team has an older version of Excel that causes compatibility problems for the rest of the team.

Or until a spreadsheet is edited in Excel that uses language other than English - formula functions will also take nationalised names.

Or until multiple people make changes to a spreadsheet, but there is no version control in Excel.


Version control is a big one for financial institutions, because there's no way to verify what the state of a spreadsheet was when a particular analysis was done.

One place I worked at created a Python library called the DAG (Directed Acyclic Graph) for this. It enabled an easy way to translate a chain of Excel cell functions into Python code, which can then be version controlled, diffed, code reviewed, etc.


And this could be the true Excel killer. If we figure out a paradigm for nested structures (or simple sql relationships really) that is as easy to work with as Excel we would have a very strong case for moving users away from spreadsheets. Every time data is interrelated in Excel it becomes a hot, very manual, mess.


Excel allows creating primary/foreign key relationships between tables using the Data tab, but you can only use these relationships to produce pivot tables, not in normal formulas.


Admittedly not great, but you can complete that join, output it as a table, and then apply formulas as desired if you use Power Query.

Power Query solves many cases where a macro was previously required, but relatively few people are aware of it.


But buy the time you get to understand how to do things like this in Excel, why not just use the proper tool for the job - a database.

(I haven't used it in many years but MS Access was a pretty efficient way to get an application together).


I think this is why the invented Access.


Does it support charts?


Doing something like this for learning, innovation and fun? Sure! But otherwise I don't understand why people are doing things like these, especially with Excel.


Boss asks you for currencies of several countries, so you present a table with the data. The easiest way would be to make it in Excel. Then they ask you to keep a record of the currencies they are buying/selling. Again, the easiest database to do that is an Excel file. You have something that works and didn't need the help of anyone to do it.

The important point would be to recognize that when they ask you this for the second or third time it might be time to automatize it.


Excel is the new emacs. Both contain robust scripting abilities, can edit text, and begin with the letter 'e'.


Or don't please, I think it's a terrible idea to abuse spreadsheets like this.

I'm being forced by my manager to do this for a client due to a close deadline (the idea is to implement a spreadsheet as interface to make it quicker than a classic web app), lbut they keep asking me to implement advanced features that would be 10 times faster to implement with a regular interface or sometimes not even possible on a sheet. Spreadsheets have a precise use case and it's not to replace web apps.


I had a situation in a certain business field where the calculations the customer designed and implemented in a spreadsheet changed so regularly that implementing them in code was unworkable because by the time the code was out if was both late and outdated. I designed[0] a solution that recursively parsed and resolved the formulas from a list of input and output cells, built an AST out of it and transpiled it to actual code or bytecode. The prototype worked beautifully and made the result diffable, extendable with, and easily embeddable within real code. My then boss found the solution useless and NASA-class, outright rejected it, and had another team just spin up some Excel, calling it with OLE or whatever and called it a day, which had abysmal performance, reliability, and runtime cost (as in $$) which ended up killing the deal with the now irate customer.

[0] Actually since I had the idea waaaay before the business need and project, I had a personal MIT-licensed clean room toy implementation of it sleeping somewhere on my hard drive and used that for the business prototype.


Nice work! Would you consider publishing that on GitHub?


Thank you! That's the plan since the onset as soon as I have some time to turn this into not a glorious hack that basically only runs on my machine. Just the Excel and OpenDocument formula parser (using PEG via treetop in Ruby, can't recall what I used for Go, got a Python thing too) could be very useful to some already.


Honestly even as a horrible hack that only runs on your machine, I think I’d be interested in seeing it. PM me and I’d be happy to help make it not-so-hacky. I say this as someone who has plenty of projects in the “drafts” bin that often just needed a conspirator to have a reason to push things over the line.


I'm not sure I completely compel with your idea.

The reason is, I don't think there is a single website out there, which couldn't be described in a spreadsheet.

What I suggest though, is take a look at this, and throw your companies sheet at it in a 30 minute hack session. If this proves unfruitful, I'd be happy to hear all about it.

Spreadsheets are a terrible way to make web-sites, though.

One of the bits I agree about, is that we should be very wary that we, developers, don't get replaced by one.


> One of the bits I agree about, is that we should be very wary that we, developers, don't get replaced by one.

Friendly reminder that this is literally the whole point of the job. Automation. Making people stop doing tasks that can be done by machines - which often means replacing people with code. Sometimes even ourselves.


Yeah, I know:

    Spreadsheets > Web.


Abuse or not. It is always great if we can re-exploit the value of thousands of existing/legacy Excel files.


This, exactly. Spreadsheets have received enough abuse already.


> I think it's a terrible idea to abuse spreadsheets like this.

It currently maintains millions of business software jobs.


Telemarketing also maintains millions of jobs. Doesn’t mean it’s a good thing to keep around.


> Doesn’t mean it’s a good thing to keep around.

Well, too bad the smart guys in Silicon Valley are busy perfecting their yak shaving, otherwise I'm sure they would have found the holy grail of business software that us foolish dark matter programmers have failed to deliver on for several decades in no time.


That explains a lot.


Stop encouraging people to use Excel for tasks where it is a poor fit. I have wasted so many hours of my life because of Excel and people using it for non-spreadsheet purposes.


You may be a dying breed.

As much as everyone wants to build full stack for every application, Excel is fantastic for complex math out of the box.

Excel is the average persons database.

I have found being able to expand on this has been incredibly useful and modular.

And as a note, VBA is definitely a real programming language, it up to the developer on how to treat Excel.


I must be part of the dying breed too. Having been involved in migrating very broken Excel/Access/VBA into properly formed web applications for companies I've worked at, the problem is people using the wrong tool in the first place. It may meet their immediate need but with no viewpoint on it's future usage, then fragility sets in and it costs the company more in upkeep and resource. I can see how that happens, but perpetuating it seems a bad idea.


Worked on a project last winter to add a fully featured compliance management system to a state regulatory agency in Access. They have moved to a sql server backend but the support for database operations is incredibly limited by the Access JET DB engine. Ended up just using ADO in my VBA scripts for everything instead of the Access database tools because it was not capable enough for the complexity. This client doesn't have the budget to migrate from Access, but has the budget to continue slapping garbage to it every year. At least as the primary NGO involved works with other states to create a web-based solution, my client might be able to move away from Access by 2025? I would say the majority of orgs that encounter this really have no choice in perpetuating the use of bad systems.


Looking at it from the perspective of a developer tasked with making a proper app from a spreadsheet, you're bound to come to that conclusion. But that's with the benefit of hindsight and with a massive dose of survivorship bias.

Of all the spreadsheets that start out exactly like the ones that need to be converted to an app, how many were thrown away having served their temporary purpose just fine? How many of them never outgrow the immediate needs and skills of its creator?

Perhaps spreadsheets should be seen as tools for business process prototyping. Starting a proper software engineering project only after a task has outgrown its spreadsheet based implementation may be a pretty efficient approach.


Maslow's Hammer in action.


I share your opinion. As a developer, I do not like Excel and the scripting environment around it, but I realize that I am not the target audience: it’s an incredible tool for analysts, managers and whatnot to explore and analyze data.

I work with a lot of data in my daily life, and see most BI tools struggling to recreate the same functionality that Excel offers, often failing in the process.

People try to recreate the Excel experience online too much, forgetting that Excel itself is a really solid solution and it’s worth taking serious.


Excel has some real limitations with large datasets and multiple users accessing it. It's far better to use something like Access or SQL for these purposes. It's also nicer in access when creating a form for people to use that pulls data from multiple input tables. For smaller data sets or sharing access quickly Excel is a champ and even when it fails it tends to try to do so gracefully. VBA does add a great amount of usefulness and is wonderful as an entry scripting language.


A surprising number of people have difficulty understanding Java or JS or Haskell or any "traditional" programming language but immediately grok complex Excel workbooks with VBA macros


VBA might be a real programming language, but imho, its syntax and tooling are awful.


Why would VBA be better than Python, Julia or R for handling complex math? Seems like the language would be really cumbersome and lacking in libraries relative to those languages.


I once worked for a company where the owner had written a Point of Sales system in Excel. It handled mixed orders where some product was given to the customer immediately, some they could come back later and it would be packed for them to grab, and some would be shipped after the event. There were hundreds of SKUs, up to 8 computers taking orders, and most scary of all, they were networked together so that another computer running excel could collect sales data and help the production team figure out how many of each product they should make next. Also the order fulfillment team used the same collected data.

It was brilliant. Excel was also the wrong tool. We constantly had problems with file locks, network shares, etc. After one year I worked with another guy to rewrite it as a web app.


My coworkers have wasted years of their life because people decided to write software that could feasibly be a medium-complexity spreadsheet.


I've wasted years of my life because of the web and people using it for non-scientific-paper-publishing purposes.


your point being?


It's worth noting that the described flow could've been fully automated from within the Excel itself, with just a few macros and formulas. I've created a spreadsheet doing very similar thing (grabbing the exchange rate from net and generating invoice) like a decade ago, so it's not even something new. The main issue people have with Excel is the same as with vim, majority of users just don't use it properly and know only the most basic functionality - which results in them doing a lot of repetitive things manually. I don't mind using tools like keikai, they're one approach to solve the problem, but perhaps companies could also try to send their employees on a proper Excel course first.


I've been able to learn vim because the web is full of high quality content that will teach it from the basics in a way that's compatible with my mindset.

I never had the same experience learning Excel, maybe the problem is my mindset. The only learning experience I enjoyed about excel is 'You suck at Excel' by Joel Spolsky.

Can someone recommend a good Excel learning path for someone in this situation?


The best way to learn Excel is to use it at work. I thought I was fantastic at Excel/VBA until I got my first finance role. Learned more in 3 months than I could have learned in 3 years on my own.

One secret I'll let you in on: most people use plugins like KuTools to do the heavy lifting. There are tons of industry-specific plugins. When you really can't find a plugin to do what you want, then, and only then, should you be writing macros and saving them to your xlsb.

But what if you're not able to use it at work? Then I recommend picking up pet projects and continually look for ways to improve. Just keep asking, "could this be easier?"

Whenever you get stuck on Excel issues, I recommend watching Excelisfun [0] who has thousands of hours of video content on every Excel feature you can think of. If you have difficulties with VBA, check out MSDN help docs.

P.S. Don't write a fuzzy text matching algo yourself. You will drive yourself crazy and Microsoft has one for free to download.

[0] https://m.youtube.com/user/ExcelIsFun


Took 3 minutes of concentration to remember this. Enjoy. http://www.cpearson.com/Excel/MainPage.aspx


Yes, get a job in finance and learn off your colleagues. Sorry but that seems to be what most people I know who ate good at Excel did. In reality it is just like programming, practice solving real problems with a team of experienced people.


It's not just you. I had the same experience, with the exact same video.


The described workflow can be entirely designed in a visual tool like EasyMorph* (https://easymorph.com) without any need for scripting at all. Plus the benefits like support for version control systems, auto-documentation, scheduling, etc.

*Disclaimer: I'm the founder.


How do you do version control with code embedded into spreadsheets? Am I not better off making code that generates a spreadsheet (or CSV or whatever formats I care about)?


It's possible to export the code to text files. MZ-Tools [1] can do it, or use VBA directly [2]. Xtrail [3] is popular in Finance companies but I haven't used it personally

[1] https://www.mztools.com/ [2] https://www.rondebruin.nl/win/s9/win002.htm [3] https://www.xltrail.com/


It's not as pleasant as working with plaintext, but Spreadsheet Compare is a nifty tool for diffing workbooks: https://support.office.com/en-us/article/Basic-tasks-in-Spre...


Excel has this built in in the later versions (since 2013, I think)


Copy and paste the file to a new folder.


    Copy of 2019Q1-finance-report-3__fixed)_Jon edits - bugfix (2).xls.xlsx


It’s been a long time since I looked into it but I remember a version of Office like 20 years ago that integrated with version control. I wonder if that’s still a thing.


There is a solution developed in France, WeMaik [0]that is very similar. We've used their solution in the consulting firm I'm a part of.

The clients are very satisfied, because the web app that's outputted by WeMaik is so easy to design and produce that they're produced by industry-knowledgeable consultants, and not web developers.

We go from idea to actionable mock-up in half a day, present it to the client, and then build the real solution assisted by WeMaik. The connections, queries, logic are not no-code, though, for this solution. We describe the specs in the spreadsheets we send to WeMaik, and they configure it.

[0] https://www.wemaik.com/



Just curious, did you try some alternatives first and what are the advantages/drawbacks?


I’ve built http://upstart.me entirely on Google Sheets. Haven’t had any issues and works really well. This allows me to collect data from newsletter through a Google Form - which gets stored in a Sheet - that I can then curate, copy & paste to an other sheet that is used as the DB for the Live website.

Im also working on an internal CRM tool for http://fairpixels.pro with a sleek frontend that can be used as a browser homepage (showing key business stats) all while the same Sheet is used to manage customers.

I highly recommend looking into this because it allows for a simple to manage backend for those that live in Sheets.


We were recently considering quick prototyping using Google Forms but ran into two key limitations:

(1) Getting a _validated_ email address of the submitter. It does support an email field, but makes it a free-form text input with no way of enforcing ownership of that email.

(2) Pre-populating some of the fields when we send the user to a form via a link. Without this, the user ends up filling the fields even though they have already submitted that information in another form.

Are there any powerful (forms + spreadsheet) products out there that solve these (and are cheaper than, say, AirTable) ?

(2)


Calcapp may be what you're looking for. You can validate text fields using regular expressions and there's an example of how to validate an e-mail address here: https://www.calcapp.net/learn/beyond-numbers.html#validating.... Fields can be pre-populated with either values you know ahead-of-time or through Excel-like formulas.

(I'm a co-founder of Calcapp.)


> enforcing ownership of that email.

I believe the GP was talking more about "click here to confirm your account" type validation, not "does it have an @ in it".


You can generate URLs that pre-fill Google Forms, they're just ugly and have the all the pre-fill in the URL as query parameters


Yes. We can make one in 30 minutes with https://qbix.com/platform . But what is the goal of this? I want to understand since it sounds like you need real PROFILES for reusable personal data.


If you're using React, I wrote this short tutorial on how to use Google Sheets in React apps: https://appendto.com/2018/08/the-simple-stack-a-primer-on-us...


I like Upstart, can you give me an idea of the price range to sponsor a data science newsletter? e.g. cost per impression.


[flagged]


Such an appropriate usage of this gif!


No.


>Offers to do her job free of charge

>Consistently refers to her as "Admin Lady"

Dude what the actual fuck


Excel is a dead-end road. I view all software as a vehicle to achieve more software. In other words, the solutions of today become the platforms of tomorrow. To that end, anything made in Excel is completely worthless. You can get some way by using excel, but at some point you want to build something on top of it, and at that point you will have to throw your entire excel solution out the window.

Excel sheets are nothing buy a worse version of bash scripts, at least in my opinion. At least bash scripts let you plug them into something bigger using standard process operations.


Spreadsheets are a great way for non-programmers to prove an algorithm or calculation. I always encourage non-technical people to start in a spreadsheet, because if they can model it in a two-dimensional spreadsheet, a programmer can very easily extract that out into working code. Spreadsheets are a perfect working reference.


I suspect you've never worked in a non-software business environment. Your statements live up to your username. I'm sure you're an intelligent and skilled person, but you're speaking outside your wheelhouse right now.


LOL at that second sentence :)


> To that end, anything made in Excel is completely worthless.

I suspect this lady and her employer find worth in this approach, which would make your assertion incorrect.

I've also seen numerous $100k+++ "proper" software projects advocated by people who share a similar mindset as you, when a mildly complicated spreadsheet that could be built in a week or two could accomplish the same thing and more.


You took your logic train too far. Thousands, nay, millions of people and groups stop somewhere past "I need to table some data, do some calculations and conditionals and dashboards" and before "We need this to be a multi-user application with app and data tiers".

Bash scripts don't visualize. Bash is harder to learn than Excel.

Go to vertex42.com and tell me that everyone who could ever use any of those templates will invariably need to throw it all away and ask a developer to build a custom tool to replace it.


The OP's application is a bit of a shoehorn for a spreadsheet, but do you foresee alternatives to excel beating it at its own game at some point in the future?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: