17 ms·
Show HN: Turn an Excel file into a web application
- rorykoehler 7y agoThey 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
- smartis2812 7y agohttps://media.giphy.com/media/mCClSS6xbi8us/giphy.gif https://media.giphy.com/media/mCClSS6xbi8us/giphy.gif
- pietrovismara 7y agoSuch an appropriate usage of this gif!
- krm01 7y agoI’ve built http://upstart.me 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 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.
- mathnmusic 7y agoWe 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)
- davidpolberger 7y agoCalcapp 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-text-fields 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.)
- mgkimsal 7y ago> 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".
- EGreg 7y agoYes. We can make one in 30 minutes with https://qbix.com/platform 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.
- theothertom 7y agoYou 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
- mritchie712 7y agoI like Upstart, can you give me an idea of the price range to sponsor a data science newsletter? e.g. cost per impression.
- kpennell 7y agoIf 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-using-react-google-sheets-api/ https://appendto.com/2018/08/the-simple-stack-a-primer-on-us...
- pietrovismara 7y agoOr 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.
- lloeki 7y agoI 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.
- jarym 7y agoNice work! Would you consider publishing that on GitHub?
- lloeki 7y agoThank 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.
- vianneychevalie 7y agoThere 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/ https://www.wemaik.com/
- revskill 7y agoExcel is fine until you have to work with nested data structure/relationship.
- x38iq84n 7y agoOr 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.
- simonh 7y agoVersion 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.
- kfk 7y agoAnd 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.
- jsmith99 7y agoExcel 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.
- collyw 7y agoBut 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).
- majkinetor 7y agoNo.
- deleted 7y ago[deleted]
- andreyazimov 7y agoNice! 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 https://Sheet2Site.com which takes your spreadsheet of items/objects and translates it into an app, with filters.
- EGreg 7y agoWait 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?
- justusthane 7y agoThere's a two minute intro video on the homepage that does a very good job of demonstrating the product.
- iscrewyou 7y agoDiscussion: https://news.ycombinator.com/item?id=16636935 https://news.ycombinator.com/item?id=16636935
- kpennell 7y agoIf 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-using-react-google-sheets-api/ https://appendto.com/2018/08/the-simple-stack-a-primer-on-us...
- deleted 7y ago[deleted]
- xtracto 7y agoThis Content Is Only For Subscribers Please subscribe to unlock this content. Just enter your email below.
- chaz6 7y agoSee also https://github.com/michaelneu/webxcel https://github.com/michaelneu/webxcel a HTTP REST server built on top of Excel using VBA.
- fzumstein 7y agosee also http://docs.xlwings.org/en/stable/rest_api.html http://docs.xlwings.org/en/stable/rest_api.html for the Python version of the REST api. It doesn't require any VBA...
- madshiva 7y agoWorst idea ever.
- zarker 7y agoThis does not work for me on chrome 74. https://keikai.io/demo/editor https://keikai.io/demo/editor
- visionPASSION 7y agoThere 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.
- Wistar 7y agoSpeaking 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.
- mettamage 7y agoWait, isn't this particular problem solved with something like Google Sheets? Other than privacy issues of course.
- fit2rule 7y agoNot all websites are for general public application.
- fauigerzigerk 7y agoNeither are all Google spreadsheets
- kingosticks 7y agoAnd 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.
- jjuel 7y agoAnd 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.
- kingosticks 7y agoYep, 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.
- fauigerzigerk 7y ago>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.
- dpau 7y agoI 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.
- z3c0 7y agoI 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.
- peteradio 7y agoLol, 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); }
- z3c0 7y agoI 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?
- abrkn 7y agoA simple solution to an easy problem, and you saved someone time. Good job!
- ivanhoe 7y agoIt'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.
- Waterluvian 7y agoHow 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)?
- wolco 7y agoCopy and paste the file to a new folder.
- EForEndeavour 7y agoCopy of 2019Q1-finance-report-3__fixed)_Jon edits - bugfix (2).xls.xlsx
- projektfu 7y agoIt’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.
- sheetjs 7y agoIt'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-Spreadsheet-Compare-F2B20AF8-A6D3-4780-8011-F15B3229F5D8 https://support.office.com/en-us/article/Basic-tasks-in-Spre...
- collyw 7y agoStop 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.
- throwayEngineer 7y agoYou 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.
- TAForObvReasons 7y agoA 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
- cannonedhamster 7y agoExcel 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.
- newaccoutnas 7y agoI 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.
- dlojudice 7y agoExcel 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.
- ubermonkey 7y agoDEAR GOD NO. There's already a huge tendency for folks who discover automation in Excel to stop learning anything else, and then do ALL automation tasks in Excel. Even stuff that has no business being in Excel, or things that should be managed in a more robust system. (This is an older phenomenon than Excel, but it does seem to attach to spreadsheets; I first saw it with Lotus macros in the late 80s.) IOW, this is absolutely a place where yes, you CAN do something, but you absolutely SHOULD NOT.
- velcrovan 7y agoDoes it support charts?
- deleted 7y ago[deleted]
- donatj 7y agoWe 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.
- kissgyorgy 7y agoDoing 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.
- hiccuphippo 7y agoBoss 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.
- 1-6 7y agoIt's 2019 so you came along and took her job! In 2029, an android will come along and take your job!
- pier25 7y agoIt 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?
- SonOfLilit 7y agoBecause 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.
- SonOfLilit 7y agoI 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.
- discordance 7y agoIt'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.
- pier25 7y agoI 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...
- Flyer1 7y agoI 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-errors-excel-data-input-aggregation/ https://easasoftware.com/case-studies/amlin-reducing-risks-e... ...and here: https://easasoftware.com/case-studies/leaseplan-transforming-scenario-pricing-models-spreadsheet-tools-into-enterprise-web-applications/ https://easasoftware.com/case-studies/leaseplan-transforming...
- rb808 7y agoThat 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/euro_reference_exchange_rates/html/index.en.html https://www.ecb.europa.eu/stats/policy_and_exchange_rates/eu...
- viana007 7y agoFor this tasks, I like to use Google Sheets, runs in the cloud, have a good mobile app and runs in any device.
- edwinyzh 7y agoCongrats 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 https://docxmanager.com We are both building a software basing on Office :)
- tekni5 7y agoYour demos break or don't even load if page zoom level is set above or below 100% in Firefox btw.
- danny8000 7y agoYou 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.
- oneplane 7y agoI'd rather have my Java expertise than Excel expertise.
- appleiigs 7y agoThe 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.
- bradknowles 7y agoMaybe they are the bank and everyone is calling them?
- hiccuphippo 7y agoI 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).
- kevas 7y agoI 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.
- delusional 7y ago"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.
- kevas 7y agoYou'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?
- o_nate 7y agoNot 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?
- natalyarostova 7y agoLooks 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.
- dontbenebby 7y agoExcel is the new emacs. Both contain robust scripting abilities, can edit text, and begin with the letter 'e'.
- mastrsushi 7y ago>Offers to do her job free of charge >Consistently refers to her as "Admin Lady" Dude what the actual fuck
- mandeepj 7y ago> 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.
- Cederfjard 7y agoI think just wanting to do it is an excellent motivation for any intellectual pursuit.
- sixstringtheory 7y agoProbably 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 :)
- mandeepj 7y agoBy 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.
- eye900 7y ago> ... 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.
- delusional 7y agoExcel 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.
- caseyohara 7y agoSpreadsheets 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.
- mistermann 7y ago> 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.
- unethical_ban 7y agoYou 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.
- GavinMcG 7y agoI 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.
- kpennell 7y agoIf 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-using-react-google-sheets-api/ https://appendto.com/2018/08/the-simple-stack-a-primer-on-us...
- _raoulcousins 7y agoThe world's most popular database becomes the world's most popular web framework. Makes sense.