Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
jQuery.sheet – Easy and fast spreadsheets for the web (spreadsheets.github.io)
166 points by andybak on Feb 5, 2016 | hide | past | favorite | 53 comments


It's also worth checking out Handsontable: https://github.com/handsontable/handsontable

I've not used their pro version but the free MIT Licensed is really excellent.


Agreed. Handsontable is an amazing library, and I'm so glad that the author was able to take it "Pro" and get paid for all of his hard work.

For a great use-case of handsontable, everyone's favorite HN'er wrote a great blog post last year: http://www.kalzumeus.com/2015/01/28/design-and-implementatio...


If you like Handsontable, you may also be interested in Sensei Grid[0], a similar, but much simpler data grid component. It doesn't aim to be a spreadsheet/excel alternative, but just a data grid with good usability.

[0] https://github.com/datazenit/sensei-grid


I second that. Having a very good experience with handsontable and planning to buy pro version more out of gratitude than for extra features


I was looking around at various datagrid implementations and most were lacking in one regard or another. When I found this I was very impressed by it.

It's lack of recent activity concerned me but I was somewhat reassured by the responses here: https://github.com/Spreadsheets/jQuery.sheet/issues/91


Using windows 10. Tried both Firefox and Chrome (both up to date versions) with same results. Menus don't work. Learn More button doesn't work. I can enter a simple formula such as '=5*10' and get a result, but can't refer to another cell. Can't move to anywhere past row 8.


Same thing on Firefox/Linux


Project hasn't had any commits in 8 months. Look like it was very active, and then the funding was pulled.

https://github.com/Spreadsheets/jQuery.sheet/issues/91


Sadly it's broken in the latest version of Chrome.

Uncaught TypeError: RegExp.prototype.sticky getter called on non-RegExp object


Not bad, reminds me of the functionality I get by mixing DataTables(1) and Jeditable(2). I might take a look at this and see if I can work it into any of my current projects.

(1) https://www.datatables.net

(2) http://www.appelsiini.net/projects/jeditable



Editor costs money. Jeditable isn't bad, just takes a little work to get it up and moving.


That's very interesting! I wonder how does it compare to handsontable.


Same question here. I just paid for a Handsontable Pro license and looks like they are planning quite a bit of roadmap ahead.

But really interested to hear about a comparison


Add a spreadsheet, select new spreadsheet, cannot select/edit a cell.


Menu backgrounds are also transparent for me. Chrome/Win7 48


> Stable and tested, Big Data ready

Tried to click on "View Details" but it doesn't show more information. Sends a bad message w.r.t being enterprise ready. (Sys info : Chrome + Ubuntu)


Is it just me, or using jQuery for a complex web app in 2015 looks like, mmm, a bit strange choice?

The author has, of course, done a great job, for we see a working app; this trumps almost any objections. Kudos to the author.

But if you developed a spreadsheet of a similar functionality, would you choose plain jQuery and writing state machines by hand? Or would you be forced to use jQuery because you'd have to use key components based on it?


> Is it just me, or using jQuery for a complex web app in 2015 looks like, mmm, a bit strange choice?

This statement is everything that is wrong with the Javascript craze. It's not even 2015, it's 2016 and the argument for not using jQuery is that it's not trendy.

Since when are we so obsessed with looking trendy and keeping up with fashion? I still see people using php + jQuery to build apps that otherwise would've taken twice the time and twice the amount of bugs that take twice the number of developers.

Tech stack should be chosen based on merit that can only be built through the test of time. This is why I'm against using Node.js to write CRUD apps and why I'm against writing everything from scratch because it's the 'right' way. Guess what, 'right' or 'wrong' wont matter if the tech stack you chose slows you down or hurts other important requirements.

Why novelty is rewarded over reliability in SV, I'd never fucking get.


I'm there with you, except that jQuery in 2015(/2016) is not just about fashion; it's about technical merit.

The biggest selling point for jQuery was unifying the mess of browser APIs under one, consistent API. Back in 2006 browser support for ecmascript was so haphazard that writing vanilla JS was an absolute ache. Or so I hear.

As years progress, browsers become steadily more conformant. In tandem, jQuery's value drops.

Meanwhile, cost (speed, size) remains constant.

This argument can be made without considering fashion; even if nobody had ever written a single library after John Resig did, jQuery in 2015 could still be considered an strange choice just for that.


Agree, there are technical merits, jquery is not designed to separate model and controller code from the view. It can obviously be done but most jquery code i've seen are injected smack middle inside the business logic, selecting a few elements from the DOM based on their css-classes(?!) and then modifies them in place. I wrote shit like this myself a few years ago but the more i think about it today the more absurd it sounds. It simply doesn't invite you to write good code and almost requires another framework on top for you to do so. It's a much more low level tool than other frameworks, and might therefor be the perfect job for something as complicated as a spreadsheet.


jQuery is still a whole lot easier to use than native DOM APIs.


jQuery is a thin wrapper on the DOM APIs. React and similar tools are entirely different (better, IMHO) abstractions.


That problem is that it is not a thin wrapper. You can see that in various performance comparisons that jquery is much slower.

http://stackoverflow.com/questions/11503534/jquery-vs-docume...


You should tell Gordon Moore that speed and size have become constant. He'll shit himself.


jQuery is a poor choice for building larger modern web apps because it has a large legacy of plugins that rely on globals and script tags. This becomes problematic as an application continues to grow.

It adds a lot of complexity, because you end up relying on file load order and you typically don't know where stuff comes from. This is why most people have gone on to use module bundlers, because they want their code to declare its own dependency graph, instead of being implicit.

If I see "$.foobar" being used, how do I know where the "foobar plugin" got added to jQuery? If it's imported at the top of the file, it's very easy to look at the file that's being referenced.

This also complicates testing a lot: Instead of loading a test file that imports a library, you have to pull in the library with all of its implicit dependencies and then load the test file.

It's not about novelty, it's about writing code that's easily testable and extensible.


The latest commits to jQuery.sheet were done in 2015, thus the date.

The problem is not in being trendy. The problem is working on a pretty low abstraction level when higher levels, streamlining the code while giving more performance, are available for years.

It's like asking why an app in 2007 would be written in plain JavaScript when e.g. jQuery is available.

Re 'no right or wrong': it does matter if you have to maintain the codebase for a long time. I've seen some legacy codebases, and I can appreciate some of the right choices done by their authors many years ago, as well as pity some of the poor choices made many years ago. Both significantly affect how easy it is to fix bugs and add features to many-yeas-old (or sometimes decades-old) code.


It's interesting to hear jQuery being criticised for being at to low an abstraction level. I thought the hip thing to do was to revisit the stone age: http://youmightnotneedjquery.com

If jQuery is low level, what is high level? SproutCore? Cappuccino? Angular 1? These high-level frameworks have a bright future ahead.


>higher levels, ... giving more performance, are available for years.

Any data to back that? In most tests I've seen React, Angular and the like are slower than just using jQuery


JQuery is too big and its raison d'être is no more. All useful ideas have been integrated in JS5 and HTML5. Plus IE6-8 and Android 1-2 are dead.

I would love if more and more awesome JS libraries like FLOT (Canvas based chart library) would remove all JQuery dependencies and use just native DOM.

(raison d'être = most important reason or purpose for someone or something's existence; too big = 120KB of dead weight is huge, minified 1+MB JS file is bad for mobile users)


I can't agree with any of this.

1. It's difficult to think it's too big. jQuery 1.x, compressed and minified, is somewhere around 35kB. jQuery 2.x is smaller. This is a relatively small proportion of a web page. It's smaller than frameworks like Ember or Angular.

2. Some of the useful ideas have been integrated (querySelector/querySelectorAll is a popular one) but that's not really the full story. jQuery is still good at abstracting over some of the differences in implementation, and the API is better (for example, doing an AJAX request in jQuery is much nicer than in vanilla JS)

3. 'IE6-8 and Android 1-2' aren't dead. True – if I were building a modern consumer-focused app or site, it might be possible to make the business decision that it wasn't worth supporting them. But you also have to remember that penetration is higher in some industries and countries, and if you need to remain accessible to these then you need to take that into account.

I don't doubt that we will start to see fewer libraries depending on jQuery as support for older UAs is phased out. But you're overstating the current case for it.


Yes, being plain jQuery is a major plus in my book until the cool javascript frameworks manages to switch to Maven (haha :) or otherwise sort out their build and dependency mess.

As for my bragging rights I wrote a dynamic maps implementation in ECMA-script back in 2005.

Today I'm a happy JavaEE user for anything backend (although I accept that Javascript in one form or another is the only thing that runs in the browser for now)


Oh man I so agree with you. Just finished a mini app build with React. I don't understand the popularity.


> Since when are we so obsessed with looking trendy and keeping up with fashion?

Have you seen MS, Apple and Google announce new products lately? It's more fashion show than anything else.

But, I'm with you, it's ridiculous.


So far nobody has been able to give me a real reason why not to use jquery other than "because it can get really slow if you use it for the wrong thing."

This uses jquery, and isn't really slow. Why is it the wrong thing for this project?


Because w/out <insert popular framework> it is just not REAL programming.

/s


Because it's well tested for cross browser support on many, many variations of browsers and operating systems.


jQuery can of course be used, it just makes a complex app more complex than it could be were it using a higher-level toolkit.

It's the same reason you use Python or C# for their higher-level abstractions instead of plain C.


https://github.com/Spreadsheets/jQuery.sheet/issues/91#issue...

>There has been a big push to move to native Dom rather than jquery, in pretty Much every way. The default wrapper is still jquery, but the internals are 99% dom only. The speed gained from that move are substantial.


Sounds good!


I'm not the author but I imagine it would be hard for the author to decide which way to go.

He/she could choose a library/framework (say react or angular) but then you'll exclude people not using these libraries.

jQuery is the common denominator which would allow the broadest support.

EDIT: of course eliminating jQuery entirely would be even better


I went back and forth with this idea; but in the end I took a read over the Jquery code. It's very helpful since they mark down what browser bug is being worked around in every instance.

After reading through it fully, I found that if I wanted real IE 8/9 support then jQuery was the only answer for complex dom interactions because all the other systems not built on jQuery have either dropped IE8 support (like React), or are for business domains where IE8 support isn't an issue.

Anyways; there's no reason you can't use jQuery + React.


If I was developing a spreadsheet in the browser I would use the lowest level abstraction possible for performance (which is what they're doing since the jQuery is just a wrapper). When you're potentially managing tens of thousands of rows of cells no matter what you use its going to start to chug and solutions using abstraction on top of abstraction on top of abstraction will start to chug a whole lot quicker than vanilla JS.


Disagree. With the right abstractions (like a "virtualized" table such as react-virtualized https://bvaughn.github.io/react-virtualized/) you won't ever need to render tens of thousands of cells simultaneously.

But feel free to implement your own virtualized table if you really don't want "abstraction on top of abstraction on top of abstraction"


This needs to be integrated with ownCloud. I really wish I could have spreadsheets like this without google drive.


Check out Ethercalc my friend


funny, the "learn more" button is broke but the "buy me a beer" one works just fine!


This perpetuates the crime against usability that is discrete scrolling by cell. Continuous scrolling, people! Continuous!


jquery.sheet.js:5180 Uncaught ReferenceError: TSV is not defined


Unusable with touch in Windows 10 with latest Chrome and Edge.


Seems angular would have made development of this much easier.


Menus are broken on Safari, Chrome and Firefox. El Cap latest


why not decouple this from jQuery?




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

Search: