Js выгрузка в excel

Обновлено: 07.07.2024

The method implemented in this component use HTML tables to draw the .xls files, Microsoft Excel no longer recognize HTML as native content so will prompt a warning message before open the file. The content will be rendered perfectly but the message can't be avoid.

Getting started

Get the package:

Register JsonExcel in your app entrypoint:

In your template

Props List

Name Type Description
data Array (required) Data to be exported
fields Object fields inside the Json Object that you want to export. If no given, all the properties in the Json are exported
export-fields (exportFields) Object this prop is used to fix the problem with other components that use the variable fields, like vee-validate. exportFields works exactly like fields
type string mime type [xls, csv], default: xls
name string filename to export, deault: data.xls
title string/Array Title(s) for the data, could be a string or an array of strings (multiple titles)
footer string/Array Footer(s) for the data, could be a string or an array of strings (multiple footers)

Example

In your HTML call it like

  • json_data: Contains the data you want to export,
  • json_fields: You can select what fields to export, especify nested data and assign labels to the fields
    the key is the label, the value is the JSON field. This will export the field data 'as is'.
    If you need to customize the the exported data you can define a callback function. Thanks to @gucastiliao.

Export CSV

To export JSON to CSV file just add the prop type with value "csv":

Я знаю, что есть много вопросов такого рода, но мне нужно сделать это с помощью JavaScript. Я использую Dojo 1.8 и имею всю информацию об атрибутах в массиве, который выглядит так:

Любая идея, как я могу экспортировать это в CSV на стороне клиента?

23 ответа

Вы можете сделать это в родном JavaScript. Вам нужно будет проанализировать ваши данные в правильном формате CSV следующим образом (при условии, что вы используете массив массивов для своих данных, как описано в вопросе):

Или более короткий путь (используя функции стрелок) :

Затем вы можете использовать функции JavaScript window.open и encodeURI для загрузки файла CSV следующим образом:

Редактировать:

Принятый ответ в настоящее время имеет несколько проблем, включая:

  • не получается, если данные содержат запятую
  • это терпит неудачу, если данные содержат разрыв строки
  • это (вид) терпит неудачу, если данные содержат кавычку

Это модифицированный ответ, основанный на принятом ответе, в котором данные будут поступать из JSON.

На случай, если кому-то понадобится это для реагий, react-csv для этого есть

В случае, если кому-то это нужно для нокаута js, он работает в основном с предложенным решением:

Вот угловая дружественная версия:

Я использую эту функцию для преобразования string[][] в файл CSV. Он заключает в кавычки ячейку, если она содержит " , , или другие пробелы (кроме пробелов):

Примечание : не работает в Internet Explorer map не заполнен полифиллами.

Примечание . Если ячейки содержат числа, вы можете добавить cell=''+cell перед if (cell.replace. , чтобы преобразовать числа в строки.

Или вы можете написать это в одну строку, используя ES6:

В обновлении Chrome 35 поведение атрибута загрузки было изменено.

Чтобы работать в Chrome, используйте это

Основываясь на ответах выше, я создал эту функцию, которую я протестировал в IE 11, Chrome 36 и Firefox 29

Вы можете использовать приведенный ниже фрагмент кода для экспорта массива в файл CSV с использованием Javascript.

Это обрабатывает часть специальных символов, а также

Здесь есть ссылка на работающий jsfiddle

Здесь есть много собственных решений для преобразования данных в CSV, но почти у всех них будут различные предостережения с точки зрения типа данных, которые они будут правильно форматировать, не запуская Excel или подобные.

Почему бы не использовать что-то проверенное: Papa Parse

Тогда просто объедините это с одним из локальных решений загрузки здесь, например. тот, что @ArneHB выглядит хорошо.

Всем доброго!
есть маленький пример, но как заставить чтоб в документе эксель появился и заголовок таблицы?

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Экспорт Excel в HTML
Всем привет. Задача: Нужно файлы .xls находящиеся в папке сохранить как html (Книгу со всеми.

Экспорт таблицы из Excel в HTML
Здравствуйте. На просторах интернета нашёл файл-помощник для переноса прайса из таблицы Excel в.

Экспорт HTML table в Excel
Здравствуйте. подскажите пожалуйста примером как можно экспортировать таблицу в эксель? Много чего.

но как заставить чтоб в документе эксель появился и заголовок таблицы? Внести этот заголовок в таблицу, он у вас сейчас от нее отдельно, соответственно и не экспортируется. Внести этот заголовок в таблицу, он у вас сейчас от нее отдельно, соответственно и не экспортируется.

был сделан вот такой вариант, и появится другой вопрос а что если там две и более таблицы?

Добавлено через 13 часов 8 минут
никто не пробовал реализовать такую?

Внести этот заголовок в таблицу, он у вас сейчас от нее отдельно, соответственно и не экспортируется. это все сделал но появился другой вопрос. че этот полученный файл вовсе не экзеловский документ? asus, *.xls это Excel только старый формат 93г, в новых версиях читается без проблем.Проблемы не вижу. asus, *.xls это Excel только старый формат 93г, в новых версиях читается без проблем.Проблемы не вижу. это да, но вы по ссылке пройдите и скачайте потом откройте с помощью блокнота, заодно создайте новый документ в экселе и тоже откройте в блокноте, и увидите о чем я говорю. Вижу, ну да и фиг с ним. Excel его нормально читает, редактировать можно, пересохранить в любой другой формат так же можно. Что конкретно в это варианте вас не устраивает мне не ясно.
Если это так принципиально то юзайте библиотеки вроде этой. Вижу, ну да и фиг с ним. Excel его нормально читает, редактировать можно, пересохранить в любой другой формат так же можно. Что конкретно в это варианте вас не устраивает мне не ясно. Можно как нибудь присвоить название эксель файлу? А то сейчас он загружается без названия.

Экспорт нескольких Excel файлов в один Excel файл
Здравствуйте! Помогите пожалуйста с реализацией макроса (осилил только загрузку с одного.

Экспорт данных из таблицы Excel в шаблон Excel
Добрый день! Проблемка заключается в следующем: В папке debug во вложении есть файл.

Хитроумный экспорт Excel->Excel через кнопку
В общем, встал вопрос автоматизации создания документа. Есть большая табличка с кучей полей в.

Экспорт из html в excel
Всем доброго! есть маленький пример, но как заставить чтоб в документе эксель появился и заголовок.

Экспорт таблицы из Excel в HTML
Здравствуйте. На просторах интернета нашёл файл-помощник для переноса прайса из таблицы Excel в.

Экспорт таблицы из Excel в Word файл
Столкнулся с трудностью, нужно экспортировать таблицу из excel файла в word. Может кто подсказать.


Экспорт Таблицы в Excel/CSV файл
Добрый день, Ищу тему, урок, подсказку, помощь по экспорту данных с таблицы SQLite в Excell файл.

Если пользоваться только JS то ни как, ибо JS не предоставляет непосредственный доступ к файловой системе пользователя. Если только использовать дыру ActiveX но это ни есть хорошо, кроме того работает только в осле.
Кроме того даже если так то экспорт на JS имеет смысл осуществлять разве что в формат csv который excel понимает.

Правильнее делать это на сервере, выдавая клиенту либо html либо xsl файл, либо что там ещё ваша душа изволит.

Если это надо сделать именно средствами JavaScript, то можно через OLE Automation работать с Excel.
var objExcelApp = new ActiveXObject("Excel.Application");
Переменная objExcelApp содержит разные методы и свойства для работы с объектами Excel. Их описание можно найти в справке по VBA для Office.
То есть ты можешь создать новую рабочую книгу, а затем заполнить ее данными из html таблицы (читая из нее данные через DOM). Причем возможно будет не просто вставить данные, а и оформить их или даже вставить более сложные объекты, например, диаграммы. То есть тебе доступна вся мощь VBA.

Главная засада здесь в том, что обычный скрипт не имеет права работы с произвольными COM объектами. В лучшем случае IE будет спрашивать разрешение пользователя на создание объекта Excel.Application. В худшем просто блокировать его создание.

Надо будет или добавить сайт в группу Trusted Sites или переделать страницу в hta файл, который пользователь должен скачать и запустить локально. Учти что hta файлы работают только в MSIE.

Читайте также: