Регистрация  |  Вход

Export в Excel/CSV

Старая изъезженная тема Но вопрос все-таки возник.
Как вы делаете экспорт данных в Excel/CSV в LWC окружении.
Я с ходу вспомнил что обычно раньше мы делали Visualforce страницу со специальным заголовком. Но начала гуглить и смотрю что сейчас кто во что горазд решает это задачу на чистом JS.
Хочется услышать реальный опыт от вас, друзья.
Старая изъезженная тема :smile: Но вопрос все-таки возник. 
Как вы делаете экспорт данных в Excel/CSV в LWC окружении. 
Я с ходу вспомнил что обычно раньше мы делали Visualforce страницу со специальным заголовком. Но начала гуглить и смотрю что сейчас кто во что горазд решает это задачу на чистом JS. 
Хочется услышать реальный опыт от вас, друзья. 
В принципе все оказалось проще простого.

let fileName = `Invoice_Generator_Results_${d}.xls`;
let uri = `data:text/xls;charset=utf-8,${encodeURIComponent(csvContent)}`;
let link = document.createElement("a");
ink.setAttribute("download", fileName);
link.href = uri;
link.style = "visibility:hidden";
link.click();

Как можно догадаться в переменной csvContent у нас непосредственно данные в CSV формате.
В принципе все оказалось проще простого.

[code]
let fileName = `Invoice_Generator_Results_${d}.xls`;
let uri = `data:text/xls;charset=utf-8,${encodeURIComponent(csvContent)}`;
let link = document.createElement("a");
ink.setAttribute("download", fileName);
link.href = uri;
link.style = "visibility:hidden";
link.click();
[/code]

Как можно догадаться в переменной csvContent у нас непосредственно данные в CSV формате.
Dmitry Shnyrev
В принципе все оказалось проще простого.

let fileName = `Invoice_Generator_Results_${d}.xls`;
let uri = `data:text/xls;charset=utf-8,${encodeURIComponent(csvContent)}`;
let link = document.createElement("a");
ink.setAttribute("download", fileName);
link.href = uri;
link.style = "visibility:hidden";
link.click();

Как можно догадаться в переменной csvContent у нас непосредственно данные в CSV формате.

JSShet отличная библиотека для генерации реального xls файла
[quote="Dmitry Shnyrev"]В принципе все оказалось проще простого.

[code]
let fileName = `Invoice_Generator_Results_${d}.xls`;
let uri = `data:text/xls;charset=utf-8,${encodeURIComponent(csvContent)}`;
let link = document.createElement("a");
ink.setAttribute("download", fileName);
link.href = uri;
link.style = "visibility:hidden";
link.click();
[/code]

Как можно догадаться в переменной csvContent у нас непосредственно данные в CSV формате.[/quote]

JSShet отличная библиотека для генерации реального xls файла
wilder
JSShet отличная библиотека
А можно ссылку? А то у меня почему-то по названию нифига не гуглится
[quote="wilder"]JSShet отличная библиотека[/quote]
А можно ссылку? А то у меня почему-то по названию нифига не гуглится :sad:
[url=https://sheetjs.com/]lib[/url]
Теперь вижу. Название просто не JSShet а SheetJS. Спасибо! Испробую.
Теперь вижу. Название просто не JSShet а SheetJS. Спасибо! Испробую.
вот тут пример SheetJS для СФ:
https://docs.sheetjs.com/docs/demos/salesforce/

но все же генерация Excel - это слишком простая задача, гораздо интереснее, что это штука может парсить Excel файлы (и другие форматы), вот это действительно полезно.

wilder, у тебя уже есть какой-то expertise по sheetjs? а то мне тоже нужно его освоить... и в прод
вот тут пример SheetJS для СФ:
https://docs.sheetjs.com/docs/demos/salesforce/

но все же генерация Excel - это слишком простая задача, гораздо интереснее, что это штука может парсить Excel файлы (и другие форматы), вот это действительно полезно.

wilder, у тебя уже есть какой-то expertise по sheetjs? а то мне тоже нужно его освоить... и в прод

Den Brown
же есть какой-то expert

Да есть, пиши что конкретно тебя интересует?
[quote="Den Brown"]же есть какой-то expert[/quote]

Да есть, пиши что конкретно тебя интересует?
wilder
Да есть, пиши что конкретно тебя интересует?

Спасибо. Только получил эту таску для следующей недели, в параллельном проекте ее вроде используют, я сначала посмотрю как это работает.

Как будут вопросы, то обязательно обращусь
[quote="wilder"]Да есть, пиши что конкретно тебя интересует?[/quote]

Спасибо. Только получил эту таску для следующей недели, в параллельном проекте ее вроде используют, я сначала посмотрю как это работает.

Как будут вопросы, то обязательно обращусь
wilder, ты никогда не работал с ArcGIS JS API?
wilder, ты никогда не работал с ArcGIS JS API?
Den Brown
wilder, ты никогда не работал с ArcGIS JS API?
Пока не доводилось
[quote="Den Brown"]wilder, ты никогда не работал с ArcGIS JS API?[/quote]
Пока не доводилось
вообще, раньше мне казалось, что в ситуации "цифровой трансформации" бизнес процессов уже нет месте для excel - если юзер может что-то вбить ручками в excel - то пусть сразу вбивает в СФ. посредники, вроде excel/csv больше не нужны (если что-то выгружается в excel/csv из другой системы и нужно импортировать в СФ - это другой разговор)

но в реальности оказалось не так. если есть удобный и рабочий excel парсер - то можно и использовать excel.
Причины:
(1) excel лучше адаптирован для ввода цифровых данных, чем любой твой кастомный СФ UI;
(2) в excel можно делегировать все бизнес валидации данных, которые можно сделать и в СФ, но при импорте файлов эти валидации - большая головная боль.

Что думаете?
вообще, раньше мне казалось, что в ситуации "цифровой трансформации" бизнес процессов уже нет месте для excel - если юзер может что-то вбить ручками в excel - то пусть сразу вбивает в СФ. посредники, вроде excel/csv больше не нужны (если что-то выгружается в excel/csv из другой системы и нужно импортировать в СФ - это другой разговор)

но в реальности оказалось не так. если есть удобный и рабочий excel парсер - то можно и использовать excel. 
Причины:
(1) excel лучше адаптирован для ввода цифровых данных, чем любой твой кастомный СФ UI;
(2) в excel можно делегировать все бизнес валидации данных, которые можно сделать и в СФ, но при импорте файлов эти валидации - большая головная боль.

Что думаете?
Den Brown
вообще, раньше мне казалось, что в ситуации "цифровой трансформации" бизнес процессов уже нет месте для excel - если юзер может что-то вбить ручками в excel - то пусть сразу вбивает в СФ. посредники, вроде excel/csv больше не нужны (если что-то выгружается в excel/csv из другой системы и нужно импортировать в СФ - это другой разговор)

но в реальности оказалось не так. если есть удобный и рабочий excel парсер - то можно и использовать excel.
Причины:
(1) excel лучше адаптирован для ввода цифровых данных, чем любой твой кастомный СФ UI;
(2) в excel можно делегировать все бизнес валидации данных, которые можно сделать и в СФ, но при импорте файлов эти валидации - большая головная боль.

Что думаете?

У excel есть свой шарм и мощный функционал и он является отраслевым стандартом для электронных таблиц.
[quote="Den Brown"]вообще, раньше мне казалось, что в ситуации "цифровой трансформации" бизнес процессов уже нет месте для excel - если юзер может что-то вбить ручками в excel - то пусть сразу вбивает в СФ. посредники, вроде excel/csv больше не нужны (если что-то выгружается в excel/csv из другой системы и нужно импортировать в СФ - это другой разговор)

но в реальности оказалось не так. если есть удобный и рабочий excel парсер - то можно и использовать excel. 
Причины:
(1) excel лучше адаптирован для ввода цифровых данных, чем любой твой кастомный СФ UI;
(2) в excel можно делегировать все бизнес валидации данных, которые можно сделать и в СФ, но при импорте файлов эти валидации - большая головная боль.

Что думаете?[/quote]

У excel есть свой шарм и мощный функционал и он является отраслевым стандартом для электронных таблиц.
Den Brown
вообще, раньше мне казалось, что в ситуации "цифровой трансформации" бизнес процессов уже нет месте для excel - если юзер может что-то вбить ручками в excel - то пусть сразу вбивает в СФ. посредники, вроде excel/csv больше не нужны (если что-то выгружается в excel/csv из другой системы и нужно импортировать в СФ - это другой разговор)

но в реальности оказалось не так. если есть удобный и рабочий excel парсер - то можно и использовать excel.
Причины:
(1) excel лучше адаптирован для ввода цифровых данных, чем любой твой кастомный СФ UI;
(2) в excel можно делегировать все бизнес валидации данных, которые можно сделать и в СФ, но при импорте файлов эти валидации - большая головная боль.

Что думаете?

эксель помощнее апекса будет, на нем даже игры кодят)))
[quote="Den Brown"]вообще, раньше мне казалось, что в ситуации "цифровой трансформации" бизнес процессов уже нет месте для excel - если юзер может что-то вбить ручками в excel - то пусть сразу вбивает в СФ. посредники, вроде excel/csv больше не нужны (если что-то выгружается в excel/csv из другой системы и нужно импортировать в СФ - это другой разговор)

но в реальности оказалось не так. если есть удобный и рабочий excel парсер - то можно и использовать excel. 
Причины:
(1) excel лучше адаптирован для ввода цифровых данных, чем любой твой кастомный СФ UI;
(2) в excel можно делегировать все бизнес валидации данных, которые можно сделать и в СФ, но при импорте файлов эти валидации - большая головная боль.

Что думаете?[/quote]

эксель помощнее апекса будет, на нем даже игры кодят)))