{"id":42827,"date":"2019-07-16T11:59:28","date_gmt":"2019-07-16T09:59:28","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=42827"},"modified":"2019-07-16T11:59:34","modified_gmt":"2019-07-16T09:59:34","slug":"jexcel-the-javascript-spreadsheet","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2019\/07\/16\/jexcel-the-javascript-spreadsheet\/","title":{"rendered":"jExcel &#8211; the JavaScript spreadsheet"},"content":{"rendered":"<!-- google_ad_section_start -->\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"611\" height=\"191\" data-attachment-id=\"42830\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2019\/07\/16\/jexcel-the-javascript-spreadsheet\/jexcel\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/07\/jexcel.png?fit=611%2C191&amp;ssl=1\" data-orig-size=\"611,191\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"jexcel\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/07\/jexcel.png?fit=611%2C191&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/07\/jexcel.png?resize=611%2C191&#038;ssl=1\" alt=\"\" class=\"wp-image-42830\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/07\/jexcel.png?w=611&amp;ssl=1 611w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/07\/jexcel.png?resize=500%2C156&amp;ssl=1 500w\" sizes=\"auto, (max-width: 611px) 100vw, 611px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Tables on the web are always challenging.  Whether you do them by hand, or with the help of a framework or library, they often carry a lot of complexity, performance costs, and compatibility issues.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Recently I came across <a href=\"https:\/\/bossanova.uk\/jexcel\/v3\/\">jExcel<\/a>, which seems to be quite powerful, with lots of advanced features, and, at the same time, rather simple to use.  The recent release of version 3, brings even more features and improves on the existing ones:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Drag and drop columns<\/li><li>Resizable rows<\/li><li>Merge columns<\/li><li>Search<\/li><li>Pagination<\/li><li>Lazy loading<\/li><li>Full screen flag<\/li><li>Image upload<\/li><li>Native color picker<\/li><li>Better mobile compatibility<\/li><li>Better nested headers compatibily<\/li><li>Amazing keyboard navegation support<\/li><li>Better hidden column management<\/li><li>Great data picker: dropdown, autocomplete, multiple, group options and icons<\/li><li>Importing from XSLX (experimental)<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Have a look at some of the <a href=\"https:\/\/bossanova.uk\/jexcel\/v3\/examples\">usage examples<\/a> too.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>Tables on the web are always challenging. Whether you do them by hand, or with the help of a framework or library, they often carry a lot of complexity, performance costs, and compatibility issues. Recently I came across jExcel, which seems to be quite powerful, with lots of advanced features, and, at the same time, &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2019\/07\/16\/jexcel-the-javascript-spreadsheet\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">jExcel &#8211; the JavaScript spreadsheet<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"jExcel - the JavaScript spreadsheet #WebDev #JavaScript #HTML #UI #UX #tables","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,18,62,1334],"tags":[1139,1158,1330],"keyring_services":[],"class_list":["post-42827","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","category-web-work","tag-javascript","tag-user-interfaces","tag-web-development"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":22412,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/08\/20\/modernizr-avascript-library-that-detects-html5-and-css3-features-in-the-browser\/","url_meta":{"origin":42827,"position":0},"title":"Modernizr &#8211; JavaScript library that detects HTML5 and CSS3 features in the browser","author":"Leonid Mamchenkov","date":"August 20, 2014","format":"link","excerpt":"Modernizr - JavaScript library that detects HTML5 and CSS3 features in the browser.","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":21876,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/29\/pho-devstack-1-0-automated-workflow-for-front-end-developers-in-one-tasty-bowl-of-code\/","url_meta":{"origin":42827,"position":1},"title":"PH\u1ede DEVSTACK 1.0 &#8211; automated workflow for front-end developers in one tasty bowl of code","author":"Leonid Mamchenkov","date":"May 29, 2014","format":"link","excerpt":"PH\u1ede DEVSTACK 1.0 - automated workflow for front-end developers in one tasty bowl of code. Features: Yeoman generator Livereload (without refresh for CSS) LESS stylesheets compilation HTML, JavaScript and CSS minification Advanced image handling (base64 inlining, image optimization, sprite generation) Browserify JavaScript modules Linting JavaScript Running unit and end to\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28627,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/06\/12\/inflected-a-port-of-activesupports-inflector-to-node-js-and-the-browser\/","url_meta":{"origin":42827,"position":2},"title":"Inflected &#8211; a port of ActiveSupport&#8217;s inflector to Node.js and the browser","author":"Leonid Mamchenkov","date":"June 12, 2018","format":false,"excerpt":"For the last few years I have been heavily involved in building web applications with the CakePHP framework.\u00a0 Apart from all the usual MVC, ORM, and so on, and so forth, features, I am a big fan of the CakePHP utilities.\u00a0 And among all of them, my long time favorite\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28471,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/04\/08\/how-javascript-works-the-mechanics-of-web-push-notifications\/","url_meta":{"origin":42827,"position":3},"title":"How JavaScript works: the mechanics of Web Push Notifications","author":"Leonid Mamchenkov","date":"April 8, 2018","format":false,"excerpt":"\"How JavaScript works\" is a series of articles on SessionStack, describing some of the lesser known bits and pieces of JavaScript.\u00a0 One particular chapter that caught my attention is \"The Mechanics of Web Push Notifications\". Push and notification are two different APIs. Push\u200a\u2014\u200ait is invoked when the server supplies information\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":22440,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/08\/28\/meteor-an-ultra-simple-database-everywhere-data-on-the-wire-pure-javascript-web-framework\/","url_meta":{"origin":42827,"position":4},"title":"Meteor &#8211; an ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework","author":"Leonid Mamchenkov","date":"August 28, 2014","format":"link","excerpt":"Meteor - an ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":39405,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/20\/the-javascript-developers-reading-list\/","url_meta":{"origin":42827,"position":5},"title":"The JavaScript Developer&#8217;s Reading List","author":"Leonid Mamchenkov","date":"March 20, 2019","format":false,"excerpt":"\"The JavaScript Developer's Reading List\" is yet another hand-picked collection of books and resources for web developers in general and JavaScript programmers in particular. The selection is mostly focused around React and GraphQL, but there are plenty of more generic resources about JavaScript, software development, and Computer Science.","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/JavaScript-books.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/42827","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=42827"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/42827\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=42827"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=42827"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=42827"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=42827"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}