Skip to content

rburone/excellentexport

 
 

Repository files navigation

ExcellentExport.js

JavaScript export to Excel or CSV

A quick JavaScript library to create export to Excel/CSV from HTML tables automatically in the browser. No server required.

Check author blog page for testing: JavaScript export to Excel

ExcellentExport.js update: JavaScript export to Excel and CSV

Revision history:

1.0

  • Added Excel data export

1.1

  • Added CSV data export

1.3

  • Added minified version.

1.4

  • Add LICENSE.txt with GPL v3.
  • UTF-8 characters fixed.

1.5

  • Possibility to select a CSV delimiter.
  • Bower package available.
  • Compose package available.

2.0.0

  • Now it can export to big files +2MB.
  • Minimum IE 11.
  • Links open with URL.createObjectURL(...).
  • NPM package available.
  • Using Semantic versioning (2.0.0 instead of 2.0).
  • Module can be loaded standalone or with RequireJS.
  • Change license to MIT.

2.0.2

  • Fix CSV Chinese characters and other special characters display error in Windows Excel.
  • Fix URL.createObjectURL(...) on Firefox.

2.0.3

  • Fix export as a module.
  • Changed minifier to UglifyJS.

2.1.0 (FORK)

  • ADD function ExcellentExport.excelFile(...) for manage download from javascript

Compatibility

Firefox, Chrome

It does not work on Internet Explorer yet. Internet Explorer does not allow to use url data schema on links.

Install: Bower

bower install excellentexport

Install: NPM

npm install excellentexport

Install: Composer

Get Composer:

$ curl -s http://getcomposer.org/installer | php
$ php composer.phar install

Create a composer.json file for your project:

{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/rburone/excellentexport"
        }
    ],
    "require": {
        "rburone/excellentexport": "~1.4.0"
    }
}

Run composer install.

Include script in your HTML:

<script type="text/javascript" src="/components/excellentexport/excellentexport.min.js"></script>

Usage

<table id="datatable">
    <tr>
        <td>100</td> <td>200</td> <td>300</td>
    </tr>
    <tr>
        <td>400</td> <td>500</td> <td>600</td>
    </tr>
</table>

<a download="somedata.xls" href="#" onclick="return ExcellentExport.excel(this, 'datatable', 'Sheet Name Here');">Export to Excel</a>
<a download="somedata.csv" href="#" onclick="return ExcellentExport.csv(this, 'datatable');">Export to CSV</a>

JAVASCRIPT:
<script>
	var file = ExcellentExport.excelFile(this, 'datatable', 'Sheet Name Here');
	saveAs(file); // Third party library for downloads.
</script>

Notes

IE8 or lower do not support data: url schema. IE9 does not support data: url schema on links. IE10 and above and Edge are supported via the Microsoft-specific msOpenOrSaveBlob method.

Test

python -m SimpleHTTPServer 8000

Security

Due to a Microsoft patch, Excel files generated by excellentexport can only be opened if they are trusted, otherwise users get a blank window. See Microsoft's forms, and Freya's answer for more details : https://social.technet.microsoft.com/Forums/en-US/d2d84793-9920-45e3-baef-5027a4ac1ae0/kb3170008-for-office-2016-breaks-functionality-ms16088

About

Javascript export to Excel

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 54.3%
  • HTML 45.7%