Skip to content

Commit 1c9e2c5

Browse files
author
fedysalah
committed
custom CSV separator (unable to use semicolon instead)
1 parent 1ec3b2d commit 1c9e2c5

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

src/BootstrapTable.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -984,7 +984,7 @@ class BootstrapTable extends Component {
984984
} else {
985985
result = this.store.getDataIgnoringPagination();
986986
}
987-
987+
const separator = this.props.options.exportCSVSeparator || ',';
988988
const keys = [];
989989
this.props.children.filter(_ => _ != null).map(function(column) {
990990
if (column.props.export === true ||
@@ -1006,7 +1006,7 @@ class BootstrapTable extends Component {
10061006
csvFileName = csvFileName();
10071007
}
10081008

1009-
exportCSVUtil(result, keys, csvFileName);
1009+
exportCSVUtil(result, keys, csvFileName, separator);
10101010
}
10111011

10121012
handleSearch = searchText => {
@@ -1454,6 +1454,7 @@ BootstrapTable.propTypes = {
14541454
lastPageTitle: PropTypes.string,
14551455
searchDelayTime: PropTypes.number,
14561456
exportCSVText: PropTypes.string,
1457+
exportCSVSeparator: PropTypes.string,
14571458
insertText: PropTypes.string,
14581459
deleteText: PropTypes.string,
14591460
saveText: PropTypes.string,

src/csv_export_util.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ if (Util.canUseDOM()) {
99
var saveAs = filesaver.saveAs;
1010
}
1111

12-
function toString(data, keys) {
12+
function toString(data, keys, separator) {
1313
let dataString = '';
1414
if (data.length === 0) return dataString;
1515

@@ -35,7 +35,7 @@ function toString(data, keys) {
3535
}
3636
}).filter(key => {
3737
return typeof key !== 'undefined';
38-
}).join(',') + '\n';
38+
}).join(separator) + '\n';
3939
}
4040

4141
keys = keys.filter(key => {
@@ -48,7 +48,7 @@ function toString(data, keys) {
4848
const value = typeof format !== 'undefined' ? format(row[field], row, extraData) : row[field];
4949
const cell = typeof value !== 'undefined' ? ('"' + value + '"') : '';
5050
dataString += cell;
51-
if (i + 1 < keys.length) dataString += ',';
51+
if (i + 1 < keys.length) dataString += separator;
5252
});
5353

5454
dataString += '\n';
@@ -57,8 +57,8 @@ function toString(data, keys) {
5757
return dataString;
5858
}
5959

60-
const exportCSV = function(data, keys, filename) {
61-
const dataString = toString(data, keys);
60+
const exportCSV = function(data, keys, filename, separator) {
61+
const dataString = toString(data, keys, separator);
6262
if (typeof window !== 'undefined') {
6363
saveAs(new Blob([ dataString ],
6464
{ type: 'text/plain;charset=utf-8' }),

0 commit comments

Comments
 (0)