У меня есть HTML-таблица на моей странице JSP, что я хочу быть экспортированным в Excel на нажатии кнопки.
Каков был бы лучший способ идти об этом?
(Для напр., как я сделал бы, это использование может быть функцией jQuery?)
Любые примеры кода в демонстрационных целях должны быть большими.
Я бы порекомендовал Apache POI , мы пользуюсь годами, проблем не было.
Множество примеров в Интернете для хорошего начала, и документация на сайте также хороша: http://poi.apache.org/spreadsheet/quick-guide.html
Скорее экспорт в формат CSV . Он также поддерживается Excel. Экспорт в полноценный формат XLS (X) с использованием, например, Apache POI HSSF или JExcepAPI выполняется медленно и занимает много памяти.
Экспорт в CSV относительно прост. Вы можете найти полный пример кода в этом ответе .
Что касается экспорта в файлы с использованием JavaScript, то это невозможно без взаимодействия Flash или серверной части. Во Flash пока есть только библиотека Downloadify , которая может экспортировать в простые текстовые файлы. Кроме того, у ExtJs, похоже, есть экспортная библиотека CSV , но я не могу найти подходящую демонстрационную страницу.
Экспорт в формат файла Excel с помощью JQuery невозможен.
Вы можете попробовать с Java. Для этого существует множество библиотек.
Excel может загружать файлы CSV (значения, разделенные запятыми), которые, по сути, представляют собой просто файлы со всем, что помещается в отдельные ячейки Excel, разделенные запятыми.
Я недостаточно знаю о том, как jQuery может обрабатывать передачу информации в файл, который вы хотите загрузить, но похоже, что была написана библиотека jQuery, которая, по крайней мере, преобразует таблицы html в формат CSV, и она находится здесь: http://www.kunalbabre.com/projects/table2CSV.php
Редактировать (29 февраля 2016 г.):
Вы можете использовать приведенную выше реализацию table2csv вместе с FileSaver.js (который является оболочкой для спецификации HTML5 W3C saveAs ()
).
Использование будет выглядеть примерно так:
var resultFromTable2CSV = $('#table-id').table2CSV({delivery:'value'});
var blob = new Blob([resultFromTable2CSV], {type: "text/csv;charset=utf-8"});
saveAs(blob, 'desiredFileName.csv');
Вы можете проанализировать таблицу, используя такую библиотеку, как http://jsoup.org/
После получения данных вы можете сохранить их в формате, совместимом с Excel (CSV ), или используя библиотеку Java Excel для таких, как POI, или используя JDBC для записи данных в лист Excel, см. этот пример: Файл Excel, защищенный паролем
Вам придется создать что-то на стороне сервера (например, сервлет), чтобы прочитать html, создать файл excel и передать его обратно пользователю.
Вы можете использовать эту библиотеку, чтобы помочь вам выполнить преобразование.