导出CSV或PDF基于datatable Laravel 4


Export CSV or PDF Based On Datatables Laravel 4

我有一个数据表,其中包含从数据库检索的数据。当我在搜索文本框(搜索文本框是由数据表生成的)中输入一些关键字时,表的结果会发生变化。这很好。但是当我点击导出到csv或pdf时,csv或pdf的结果将从数据库而不是数据表中检索。

如何导出到csv/pdf基于数据表插件使用laravel?

//datatable插件
<link href="plugins/datatables/dataTables.bootstrap.css" rel="stylesheet" type="text/css" />
<script src="plugins/datatables/jquery.dataTables.min.js" type="text/javascript"></script>
<script src="plugins/datatables/dataTables.bootstrap.min.js" type="text/javascript"></script>
php

//

public function sales_csv(){    
    // columns      
    $arrSelectFields = array(
        -- columns --
    );
    // query
    -- sql queries --
    // passing the columns which I want from the result set. Useful when we have not selected required fields
    $arrColumns = $arrSelectFields;
    // define the first row which will come as the first row in the csv
    $arrFirstRow = $arrSelectFields;
    // building the options array
    $options = array(
        'columns' => $arrColumns,
        'firstRow' => $arrFirstRow,
    );
    // creating the Files object from the Utility package.
    $Files = new Files;
    return $Files->convertToReportsSalesCSV($query, $options);
}

我可能会将关键字发布到我的服务器并再次运行sql查询过滤这些结果然后创建csv/pdf

一种方法是使用jQuery并调用ajax。

首先,给表一个ID。接下来,使用这段代码获取表本身和它的HTML:

var html = $('#myCoolTable').html();

然后通过ajax调用Laravel生成通过HTML传递的PDF。你可以使用这个HTML到PDF库:http://wkhtmltopdf.org/

然后,您应该得到与屏幕上的表完全相同的PDF(使用任何过滤器等)。

作为旁注,您还可以将CSS添加到HTML中以提供给PDF库,它甚至会使表的样式也相同!