Есть json:
Необходимо его экспортировать в .csv (или в любой другой формат, который exel мог бы без проблем открывать). Желательно без использования сторонних библиотек
Формируете массив строк, в которых значения полей объектов разделены ;
или ,
1 (и с добавлением каждой строке завершающих \r\n
).
При необходимости2, заключаете значение в двойные кавычки
Создаете экземпляр Blob, передав конструктору сформированный массив и указав text/csv
в строке параметра type
(MIME-тип)
Получаете URL на экземпляр Blob статическим методом URL.createObjectURL()
Делаете с URL все что сочтете нужным.
1 Excel использует в качестве разделителя запятую.
2 В том случае, когда значение строковое, и содержит символы разделителя или перевода строки. Если значение при этом содержит еще и кавычки, то они должны быть удвоены: "qwe ""rty"" uio"
- это можно сделать методом String.replace()
.
let data = rndObjArr(50),
csvRows = [],
blob;
data.forEach(o => csvRows.push(`${o.date},${o.count}\r\n`));
blob = new Blob(csvRows, { type: 'text/csv;charset=utf-8;' });
document.body.insertAdjacentHTML('beforeend', `
<a href="${URL.createObjectURL(blob)}" download="export.csv">Скачать CSV</a>
`);
function rndObjArr(size) {
const rndInt = (from, to) => Math.floor(Math.random() * (to - from)) + from;
let result = [],
dateStr;
while (size--) {
dateStr = `${rndInt(2010, 2019)}-${String(rndInt(1, 13)).padStart(2, '0')}-${String(rndInt(1, 31)).padStart(2, '0')}`;
result.push({ date: dateStr, count: rndInt(0, 50) });
}
return result;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть такая структура select со странами загрузка данных стран с сервера
Нужно апдейтнуть проект на компах с запретом выхода в сетьВсе npm пакеты уже установлены, будет производиться только замена исполняющего...
Сделал GET запрос с помощью JS https://pastebincom/kcCdiRxe ,добавил CORS в заголовки,но все равно выводить ошибки в консоле
Чем плохо то, что сервер разрешит всем производить кроссдоменный ajax? Будем обрабатывать эти запросы так же, как и от обычных клиентов и все...