Таблица jQuery для экспорта в CSV

Для Java 7+ существует также https://docs.oracle.com/javase/7/docs/api/java/nio/file/DirectoryStream.html

Пример, взятый из Javadoc:

List listSourceFiles(Path dir) throws IOException {
   List result = new ArrayList<>();
   try (DirectoryStream stream = Files.newDirectoryStream(dir, "*.{c,h,cpp,hpp,java}")) {
       for (Path entry: stream) {
           result.add(entry);
       }
   } catch (DirectoryIteratorException ex) {
       // I/O error encounted during the iteration, the cause is an IOException
       throw ex.getCause();
   }
   return result;
}

30
задан timborden 28 May 2009 в 14:16
поделиться

3 ответа

Нашел работающее решение (с помощью http://www.topsemtips.com/2008/11/save-html-table-to-excel-using-jquery/ ):

Я изменил функцию на:

function popup(data) {
    $("#main div.inner").append('<form id="exportform" action="export.php" method="post" target="_blank"><input type="hidden" id="exportdata" name="exportdata" /></form>');
    $("#exportdata").val(data);
    $("#exportform").submit().remove();
    return true; 
}

И создал файл export.php:

<?php

    header("Content-type: application/vnd.ms-excel; name='excel'");
    header("Content-Disposition: filename=export.csv");
    header("Pragma: no-cache");
    header("Expires: 0");

    print $_REQUEST['exportdata'];

?>

Обновление: Версия, более дружественная к IE7:

<?php

    header('Content-Type: application/force-download');
    header('Content-disposition: attachment; filename=filename.csv');

    print $_POST['exportdata'];

?>
20
ответ дан 28 November 2019 в 00:18
поделиться

Я не рекомендую «загружать» данные CSV таким образом. IE7 позволяет использовать в адресной строке не более 2000 символов, поэтому высока вероятность того, что ваш файл будет усечен.

6
ответ дан 28 November 2019 в 00:18
поделиться

Спасибо за ваш вопрос и ответ, мне понравилось. Вот (почти идентичная) версия ASP.Net вашего решения, которое я использую:

Измените всплывающую функцию table2CSV.js на:

function popup(data) {
       $("body").append('<form id="exportform" action="CsvExport.ashx" method="post" target="_blank"><input type="hidden" id="exportdata" name="exportdata" /></form>');
       $("#exportdata").val(data);
       $("#exportform").submit().remove();
       return true;
} 

Обратите внимание на изменение с export.php на общий обработчик .ashx.

Общий код обработчика:

 public void ProcessRequest (HttpContext context) {
    context.Response.ContentType = "application/force-download";
    context.Response.AddHeader("content-disposition", "filename=filename.csv");

    context.Response.Write(context.Request.Form["exportdata"]);
}
7
ответ дан 28 November 2019 в 00:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: