Pour l'export csv, on utilise Papaparse, c'est plus robuste qu'a la mano

This commit is contained in:
Christophe 2020-05-19 20:47:10 +02:00
parent 283f5730dc
commit decadb5f1e
5 changed files with 1955 additions and 8 deletions

View file

@ -14,8 +14,10 @@
[(#CONFIG{gamutable/version_js}|=={dev}|?{ [(#CONFIG{gamutable/version_js}|=={dev}|?{
<script src="[(#CHEMIN{js/vue.js}|timestamp)]" type="text/javascript"></script> <script src="[(#CHEMIN{js/vue.js}|timestamp)]" type="text/javascript"></script>
<script src="[(#CHEMIN{js/papaparse.js}|timestamp)]" type="text/javascript"></script>
<script src="[(#CHEMIN{js/gamutable.js}|timestamp)]" type="text/javascript"></script> <script src="[(#CHEMIN{js/gamutable.js}|timestamp)]" type="text/javascript"></script>
, ,
<script src="[(#CHEMIN{js/vue.min.js}|timestamp)]" type="text/javascript"></script> <script src="[(#CHEMIN{js/vue.min.js}|timestamp)]" type="text/javascript"></script>
<script src="[(#CHEMIN{js/papaparse.min.js}|timestamp)]" type="text/javascript"></script>
<script src="[(#CHEMIN{js/gamutable.js}|compacte|timestamp)]" type="text/javascript"></script> <script src="[(#CHEMIN{js/gamutable.js}|compacte|timestamp)]" type="text/javascript"></script>
})] })]

View file

@ -100,10 +100,15 @@ Vue.nextTick(function () {
function exporterCSV(json, delimitercsv, name) { function exporterCSV(json, delimitercsv, name) {
let csv = ''; let csv = '';
json.forEach((l) => { if (delimitercsv) {
csv += l.join(delimitercsv); csv = Papa.unparse(json, { delimiter: delimitercsv });
csv += '\r\n'; } else {
}); csv = Papa.unparse(json);
}
//json.forEach((l) => {
//csv += l.join(delimitercsv);
//csv += '\r\n';
//});
//Download the file as CSV //Download the file as CSV
let link = document.createElement('a'); let link = document.createElement('a');
link.setAttribute('href', 'data:text/csv;charset=utf-8,%EF%BB%BF' + encodeURIComponent(csv)); link.setAttribute('href', 'data:text/csv;charset=utf-8,%EF%BB%BF' + encodeURIComponent(csv));

View file

@ -131,10 +131,19 @@ Vue.nextTick(function () {
function exporterCSV(json, delimitercsv, name) { function exporterCSV(json, delimitercsv, name) {
var csv = ''; var csv = '';
json.forEach(function (l) {
csv += l.join(delimitercsv); if (delimitercsv) {
csv += '\r\n'; csv = Papa.unparse(json, {
}); //Download the file as CSV delimiter: delimitercsv
});
} else {
csv = Papa.unparse(json);
} //json.forEach((l) => {
//csv += l.join(delimitercsv);
//csv += '\r\n';
//});
//Download the file as CSV
var link = document.createElement('a'); var link = document.createElement('a');
link.setAttribute('href', 'data:text/csv;charset=utf-8,%EF%BB%BF' + encodeURIComponent(csv)); link.setAttribute('href', 'data:text/csv;charset=utf-8,%EF%BB%BF' + encodeURIComponent(csv));

1924
js/papaparse.js Normal file

File diff suppressed because it is too large Load diff

7
js/papaparse.min.js vendored Normal file

File diff suppressed because one or more lines are too long