Skip to content

Commit b382f94

Browse files
committed
v3.1.3
2 parents 1fd1119 + 0958fab commit b382f94

9 files changed

Lines changed: 306 additions & 38 deletions

File tree

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[![Build Status](https://travis-ci.org/clarketm/TableExport.svg?branch=master)](https://travis-ci.org/clarketm/TableExport)
2-
# TableExport
2+
# [TableExport](http://www.clarketravis.com/tableexport)
33
The simple, easy-to-implement plugin to export HTML tables to xlsx, xls, csv, and txt files
44

55
## Getting Started
@@ -32,7 +32,7 @@ $ npm install tableexport
3232

3333
##### Optional / Theming:
3434

35-
[Bootstrap] (http://getbootstrap.com/getting-started/#download) (3.1.0 or higher)
35+
[Bootstrap](http://getbootstrap.com/getting-started/#download) (3.1.0 or higher)
3636

3737
##### Add-Ons:
3838
In order to provide **Office Open XML SpreadsheetML Format ( .xlsx )** support, you must include the following third-party scripts to your project before TableExport.js.
@@ -61,7 +61,7 @@ To support **.xlsx** in older browsers ( **Firefox** < 20, **Opera** < 15, **Saf
6161

6262
### CSS
6363

64-
By default, [TableExport.js](http://www.clarketravis.com/tableexport) utilizes the [Bootstrap] (http://getbootstrap.com/getting-started/#download) CSS framework to deliver enhanced table and button styling. For non-Bootstrap projects, initialize with the `bootstrap` property set to `false`.
64+
By default, [TableExport.js](http://www.clarketravis.com/tableexport) utilizes the [Bootstrap](http://getbootstrap.com/getting-started/#download) CSS framework to deliver enhanced table and button styling. For non-Bootstrap projects, initialize with the `bootstrap` property set to `false`.
6565

6666
```js
6767
$("table").tableExport({

bower.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "tableexport.js",
3-
"version": "3.1.2",
3+
"version": "3.1.3",
44
"authors": [
55
"clarketm <travis.m.clarke@gmail.com>"
66
],
@@ -15,7 +15,9 @@
1515
"xlsx",
1616
"xls",
1717
"csv",
18-
"txt"
18+
"txt",
19+
"jquery-plugin",
20+
"ecosystem:jquery"
1921
],
2022
"dependencies": {
2123
"Blob": "*",

dist/js/tableexport.js

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*!
2-
* TableExport.js v3.1.2 (http://www.clarketravis.com)
2+
* TableExport.js v3.1.3 (http://www.clarketravis.com)
33
* Copyright 2015 Travis Clarke
44
* Licensed under the MIT license
55
*/
@@ -31,27 +31,28 @@
3131
exporters = {
3232
xlsx: function (rDel, name) {
3333
var dataURL = $rows.map(function (i, val) {
34-
var $cols = $(val).find('th, td');
35-
return $cols.map(function (i, val) {
36-
return $(val).text()
37-
});
38-
}).get(),
39-
dataObject = JSON.stringify({
34+
var $cols = $(val).find('th, td');
35+
return [$cols.map(function (i, val) {
36+
return $(val).text();
37+
}).get()];
38+
}).get(),
39+
dataObject = escapeHtml(
40+
JSON.stringify({
4041
data: dataURL,
4142
name: name
42-
}).replace(/'/g, "&#39;"),
43+
})),
4344
myFile = name + ".xlsx",
4445
myContent = $.fn.tableExport.xlsx.buttonContent,
4546
myClass = $.fn.tableExport.xlsx.defaultClass;
4647
createObjButton(dataObject, myFile, myContent, myClass);
4748
},
4849
xls: function (rdel, name) {
4950
var colD = $.fn.tableExport.xls.separator,
50-
dataURL = 'data:application/vnd.ms-excel;charset=utf-16,' +
51+
dataURL = 'data:application/vnd.ms-excel;charset=utf-8,' +
5152
encodeURIComponent($rows.map(function (i, val) {
5253
var $cols = $(val).find('th, td');
5354
return $cols.map(function (i, val) {
54-
return $(val).html()
55+
return $(val).text();
5556
}).get().join(colD);
5657
}).get().join(rdel)),
5758
myFile = name + ".xls",
@@ -62,11 +63,11 @@
6263
csv: function (rdel, name) {
6364
rdel = '"' + rdel + '"';
6465
var colD = '"' + $.fn.tableExport.csv.separator + '"',
65-
dataURL = 'data:text/csv;charset=utf-16,' +
66+
dataURL = 'data:text/csv;charset=utf-8,' +
6667
encodeURIComponent('"' + $rows.map(function (i, val) {
6768
var $cols = $(val).find('th, td');
6869
return $cols.map(function (i, val) {
69-
return $(val).text().replace(/"/g, '""')
70+
return $(val).text().replace(/"/g, '""');
7071
}).get().join(colD);
7172
}).get().join(rdel) + '"'),
7273
myFile = name + ".csv",
@@ -76,11 +77,11 @@
7677
},
7778
txt: function (rdel, name) {
7879
var colD = $.fn.tableExport.txt.separator,
79-
dataURL = 'data:text/plain;charset=utf-16,' +
80+
dataURL = 'data:text/plain;charset=utf-8,' +
8081
encodeURIComponent($rows.map(function (i, val) {
8182
var $cols = $(val).find('th, td');
8283
return $cols.map(function (i, val) {
83-
return $(val).text()
84+
return $(val).text();
8485
}).get().join(colD);
8586
}).get().join(rdel)),
8687
myFile = name + ".txt",
@@ -168,6 +169,14 @@
168169

169170
$.fn.tableExport.rowDel = "\r\n";
170171

172+
$.fn.tableExport.entityMap = {"&": "&#38;", "<": "&#60;", ">": "&#62;", "'": '&#39;', "/": '&#47'};
173+
174+
function escapeHtml(string) {
175+
return String(string).replace(/[&<>'\/]/g, function (s) {
176+
return $.fn.tableExport.entityMap[s];
177+
});
178+
}
179+
171180
function dateNum(v, date1904) {
172181
if (date1904) v += 1462;
173182
var epoch = Date.parse(v);

dist/js/tableexport.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "tableexport",
3-
"version": "3.1.4",
3+
"version": "3.1.3",
44
"authors": [
55
"clarketm <travis.m.clarke@gmail.com>"
66
],

src/stable/js/tableexport.js

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*!
2-
* TableExport.js v3.1.2 (http://www.clarketravis.com)
2+
* TableExport.js v3.1.3 (http://www.clarketravis.com)
33
* Copyright 2015 Travis Clarke
44
* Licensed under the MIT license
55
*/
@@ -31,27 +31,28 @@
3131
exporters = {
3232
xlsx: function (rDel, name) {
3333
var dataURL = $rows.map(function (i, val) {
34-
var $cols = $(val).find('th, td');
35-
return $cols.map(function (i, val) {
36-
return $(val).text()
37-
});
38-
}).get(),
39-
dataObject = JSON.stringify({
34+
var $cols = $(val).find('th, td');
35+
return [$cols.map(function (i, val) {
36+
return $(val).text();
37+
}).get()];
38+
}).get(),
39+
dataObject = escapeHtml(
40+
JSON.stringify({
4041
data: dataURL,
4142
name: name
42-
}).replace(/'/g, "&#39;"),
43+
})),
4344
myFile = name + ".xlsx",
4445
myContent = $.fn.tableExport.xlsx.buttonContent,
4546
myClass = $.fn.tableExport.xlsx.defaultClass;
4647
createObjButton(dataObject, myFile, myContent, myClass);
4748
},
4849
xls: function (rdel, name) {
4950
var colD = $.fn.tableExport.xls.separator,
50-
dataURL = 'data:application/vnd.ms-excel;charset=utf-16,' +
51+
dataURL = 'data:application/vnd.ms-excel;charset=utf-8,' +
5152
encodeURIComponent($rows.map(function (i, val) {
5253
var $cols = $(val).find('th, td');
5354
return $cols.map(function (i, val) {
54-
return $(val).html()
55+
return $(val).text();
5556
}).get().join(colD);
5657
}).get().join(rdel)),
5758
myFile = name + ".xls",
@@ -62,11 +63,11 @@
6263
csv: function (rdel, name) {
6364
rdel = '"' + rdel + '"';
6465
var colD = '"' + $.fn.tableExport.csv.separator + '"',
65-
dataURL = 'data:text/csv;charset=utf-16,' +
66+
dataURL = 'data:text/csv;charset=utf-8,' +
6667
encodeURIComponent('"' + $rows.map(function (i, val) {
6768
var $cols = $(val).find('th, td');
6869
return $cols.map(function (i, val) {
69-
return $(val).text().replace(/"/g, '""')
70+
return $(val).text().replace(/"/g, '""');
7071
}).get().join(colD);
7172
}).get().join(rdel) + '"'),
7273
myFile = name + ".csv",
@@ -76,11 +77,11 @@
7677
},
7778
txt: function (rdel, name) {
7879
var colD = $.fn.tableExport.txt.separator,
79-
dataURL = 'data:text/plain;charset=utf-16,' +
80+
dataURL = 'data:text/plain;charset=utf-8,' +
8081
encodeURIComponent($rows.map(function (i, val) {
8182
var $cols = $(val).find('th, td');
8283
return $cols.map(function (i, val) {
83-
return $(val).text()
84+
return $(val).text();
8485
}).get().join(colD);
8586
}).get().join(rdel)),
8687
myFile = name + ".txt",
@@ -168,6 +169,14 @@
168169

169170
$.fn.tableExport.rowDel = "\r\n";
170171

172+
$.fn.tableExport.entityMap = {"&": "&#38;", "<": "&#60;", ">": "&#62;", "'": '&#39;', "/": '&#47'};
173+
174+
function escapeHtml(string) {
175+
return String(string).replace(/[&<>'\/]/g, function (s) {
176+
return $.fn.tableExport.entityMap[s];
177+
});
178+
}
179+
171180
function dateNum(v, date1904) {
172181
if (date1904) v += 1462;
173182
var epoch = Date.parse(v);

0 commit comments

Comments
 (0)