Skip to content

Instantly share code, notes, and snippets.

@SheetJSDev
Created May 20, 2018 17:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save SheetJSDev/24b8acd317d01999d721b38de7c53021 to your computer and use it in GitHub Desktop.
Save SheetJSDev/24b8acd317d01999d721b38de7c53021 to your computer and use it in GitHub Desktop.

Note on extended features (styles, PivotTables, etc)

First off, we would like to thank the entire SheetJS community for the continued support over the years. The open source offerings are constantly improving, and thousands of developers in the community have found very clever and exciting use cases for their projects. We are always excited to see what you build, and are especially excited to find our building blocks in unexpected places like Facebook's React framework and the product website for Microsoft Office! We are truly humbled that a small project designed to solve a specific problem is useful for many people and is now one of the most popular open source projects on GitHub.

While it may seem like hacking a small feature like styles is easy, it quickly opens up a can of worms. There is quite a bit of interplay between styles and themes (e.g. indexed colors, theme + tint calculations); styles and number formats (some of the standard number formats use [Red] and other color hints); styles and tables (alternating row colors); style inheritance; styles and rich text (Excel supports text cells where some of the text is bold or italic); and multi-format representations (even though XLSX and XLSB use similar representations, XLS has a different set of mechanisms, as does SpreadsheetML and ODS and HTML). Other efforts have offloaded the hard work to the user, requiring developers to pore over the various specifications or inspect test files to hack support, but our format-agnostic approach necessitates addressing those issues upfront.

We offer this in the Pro compendium. The sheer amount of work to make something as simple as styled HTML to XLSX conversion work seamlessly across Excel versions is not obvious at first blush, and we have worked with companies to discover undocumented constraints and corner cases. It would not be fair to any of our paying customers if we turned around and made the relevant features open source. We generally avoid discussing the Pro version because it seems inappropriate to discuss paid features in the context of the Community issue tracker.

At the end of the day, all work done on this open source project is charitable. In contrast to most popular and large open source projects, there are no banner ads on demo pages, no patreon or opencollective, no request for donations, no spyware or trackers or logos inserted into exported sheets, no VC backing SheetJS, nothing. We chose the very liberal Apache 2.0 License rather than try to trap companies with a license like Affero GPL. The Community Version is a passion project driven by true belief in open source, and we sacrificed thousands of hours and tens of thousands of dollars for development; testing computers and software; and documentation and support so that you and thousands of other people and companies can easily work with spreadsheets. In that spirit of open source, we continue to develop the Community version, adding features and fixing bugs ❤️

@elad
Copy link

elad commented May 20, 2018

Hah, totally understandable. The complexity of Excel's historical baggage is no joke. Do I get a free pass for stepping into the fire? ;)

@SheetJSDev
Copy link
Author

SheetJSDev commented May 20, 2018

Absolutely, and you should send an email! Also to be clear, this is not signaling an end to the open source, but rather a clarification on the purpose of the Community Version and defining the scope so that we can finally reach a version "1.0".

(p.s. the new @elad handle is much better than the older one :)

@jrdncchr
Copy link

jrdncchr commented Jul 2, 2018

Hi.. Since the style feature is in pro, I would like to confirm first that the code below will be allowed on pro version:
ws.B8.s = { alignment: { wrapText: true, vertical: 'center', horizontal: 'center' } };

Is that how it works?

@SheetJSDev
Copy link
Author

@jrdncchr send an email

@msillz
Copy link

msillz commented Aug 12, 2018

As a suggestion, I think you should make it more apparent in the README the features that the community version does not support.

Thank you for your work!

@mrhammadasif
Copy link

The amount of work you guys put on this project is tremendous and appreciatable but Splitting the project into two ways, doesn't seem fine.

I believe that you should start Patreon for it or start collecting funds for it. In this way, everybody will get benefit from this project

@jcgertig
Copy link

Thanks so much for the project its totally understandable. You could always go the way of the ag-grid model @community vs @enterprise so easier to doc what is and is not covered. Thanks again

@SheetJSDev
Copy link
Author

@jcgertig ag-grid intermingles open source and proprietary code in the same repo, creating confusion for everyone. It would take a much larger effort to figure out what parts are indeed open source and what aren't. This confusion is what led Amazon to fork ElasticSearch. Creating licensing confusion might be in our economic interests, as evidenced by a number of open source projects which either relicensed or mixed code, but it betrays the userbase. We vouched for Handsontable in the early days and their removal of the open source offering made us regret our recommendation.

@mrhammadasif only a few projects raise enough through patreon and donations to enable someone to work on the project full-time. The fact that Microsoft uses SheetJS open source in Office 365 products and hasn't considered reaching out or donating or paying for a Pro license strongly suggests that the open source project is fit for purpose and that donations just wouldn't work.

@gauravsbagul
Copy link

Hi, Since these are the pro features do we have any free trial period or any demo project on pro features for POC purpose?

@Smolmeri
Copy link

Smolmeri commented May 7, 2021

Hi awesome work! Do you have an estimate on how long it takes you to respond to emails about the Pro version? Currently waiting for a response from your team and we are a bit tight for time 😬. Keep up the good work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment