JQuery DataTables 导出 Excel(文件导出,打印功能)

JQuery DataTables 的Button框架(扩展)中 内置按钮 为 JQuery DataTables 提供了 文件导出打印列可见性功能。

本篇博文,就以我们常用的 文件导出 功能为例,介绍一下 内置按钮功能。

文件导出

下面给出了官网对文件导出功能的翻译, 如果大家不想读,我就简单给大家总结一下:

  1. 文件导出,框架提供了两种实现方式: 1. HTMT5 2. FLASH ;
  2. H5 可以适应现代浏览器,而FLASH 则可兼容老版本浏览器,但是要依赖于FLASH插件, 厉害的来了, 框架可以自动 检测浏览器能力,帮我们选择适合的导出方式。(这是很棒的)
  3. 引入文件导出需要的JS后,我们可以使用四种扩展 ,分别是: copy, csv, excel, pdf

在DataTable中显示数据时,最终用户通常可以使用这些数据来获取DataTable中的数据,并将其提取到文件中以供本地使用。这可以使用基于HTML5的按钮或Flash按钮来完成。

按钮有 四个内置的按钮类型,它们将 自动检测浏览器的能力和可用的软件 - 如果可能的话,它们将自动使用HTML5按钮,如果没有满足要求,则会回落到Flash并最终不显示

  • copy - 复制到剪贴板
  • csv - 保存到CSV文件
  • excel - 保存到Excel XLSX文件
  • pdf - 保存为PDF文档

——————–摘自 官网翻译

文件导出实现

上面已经介绍了理论知识,下面我们介绍一下,具体怎么实现。

上面已经说到了,插件不光支持 导出Excel,并且支持其他形式的导出

一、引入必要的JS扩展

扩展功能,并没有和核心库放在一起,所以我们要单独引入。

直接选择我们要使用的扩展,而后打包下载 (*推荐)https://datatables.net/download/
(这个我们在前面自定义按钮时,提到过,我推荐大家打包下载。)

如图勾选如下扩展, 而后可选择,压缩并合并,提升系统性能。

Buttons

补充
官网还提供了其他引入方式

其他下载方式

当然大家也可以选择使用自己的资源,那么请大家引入以下资源

link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.css"/>
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/buttons/1.4.2/css/buttons.dataTables.css"/>

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/2.5.0/jszip.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/vfs_fonts.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/pdfmake.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.4.2/js/dataTables.buttons.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.4.2/js/buttons.flash.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.4.2/js/buttons.html5.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.4.2/js/buttons.print.js"></script>

二、使用Button 按钮扩展功能

//再引入已上资源之后,我们便可以直接使用以下功能了
//参考文档: http://www.datatables.club/extensions/buttons/

//例子1:
$('#myTable').DataTable( {
    buttons: [
        'copy', 'excel', 'pdf'
    ]
} );

//例子2: 导出Excel
$('#myTable').DataTable( {
    buttons: [
        {
            extend: 'excel',//使用 excel扩展
            text: '导出本页',// 显示文字
            exportOptions: {
                //自定义导出选项
                //如:可自定义导出那些列,那些行
                //TODO...
            }
        }
    ]
} );

三、 补充: 自定义导出数据

由于默认是将整个表格的数据导出,这显然可能不是我们想要的,

比如:我们并不想要导出 checkbox,操作等列。所有我们可以通过配置,自定义导出那些数据。

我们已 Excel 扩展为例

Execl 扩展 有如下可选配置:

官网文档: https://datatables.net/reference/button/excel

配置说明

重点是:exportOptions
官网文档: https://datatables.net/reference/api/buttons.exportData()

这里写图片描述

我用红线标出来是列选择器,也就是我要给大家做的例子,打印指定列。

我们可以参考官网文档(列选择器):https://datatables.net/reference/type/column-selector

我们又多种方式控制要选择的列: 比如索引,列名,类名,节点,JQuery等多种方式去选择我们要打印的列。

配置实例:

//通过索引直接选择要打印的多列
$('#example').DataTable( {
    dom: 'Bfrtip',
    buttons: [
        {
            extend: 'excel',
            exportOptions: {
                columns: [ 0, 1, 2, 5 ]
            }
        },
    ]
} );

//通过Name控制要打印的列
//格式为 [列名]: name
$('#example').DataTable( {
    dom: 'Bfrtip',
    buttons: [
        {
            extend: 'excel',
            exportOptions: {
                // 将打印 id 和 title 列
                columns: [ 'id:name','title:name']
            }
        },
    ]
} );

参考博文

Button 按钮的初始化: http://www.datatables.club/extensions/buttons/
Button 扩展下载: https://datatables.net/download/
文件导出配置: https://datatables.net/reference/button/excel
自定义导出数据配置:https://datatables.net/reference/api/buttons.exportData()
列的选择: https://datatables.net/reference/type/column-selector

  • 8
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
### 回答1: 要将Datatables导出Excel文件,您可以使用以下步骤: 1. 在Datatables中选择要导出的数据。 2. 使用JavaScript将数据转换为Excel格式。 3. 创建一个Excel文件并将数据添加到文件中。 4. 提供一个下载链接,以便用户可以下载Excel文件。 以下是一个简单的示例代码,用于将Datatables导出Excel文件: ``` // 选择要导出的数据 var data = $('#example').DataTable().rows().data().toArray(); // 将数据转换为Excel格式 var wb = XLSX.utils.book_new(); var ws = XLSX.utils.json_to_sheet(data); XLSX.utils.book_append_sheet(wb, ws, "Sheet1"); // 创建Excel文件并将数据添加到文件中 var wbout = XLSX.write(wb, {bookType:'xlsx', type: 'binary'}); function s2ab(s) { var buf = new ArrayBuffer(s.length); var view = new Uint8Array(buf); for (var i=; i<s.length; i++) view[i] = s.charCodeAt(i) & xFF; return buf; } saveAs(new Blob([s2ab(wbout)],{type:"application/octet-stream"}), 'example.xlsx'); // 提供一个下载链接 $('#download').attr('href', 'data:application/octet-stream;base64,' + btoa(wbout)); ``` 请注意,此代码使用了XLSX.js库来处理Excel文件。您需要在代码中包含该库才能使代码正常工作。 ### 回答2: Datatables是一款十分强大的JavaScript插件,它主要用于在Web应用程序中呈现和操作数据。除此之外,Datatables还包含丰富的功能,例如分页、排序、搜索和过滤等。而对于数据的导出Datatables同样提供了非常便捷的解决方案,支持导出 Excel、CSV、PDF等多种格式。在本篇文章中,我们主要讲解如何使用Datatables将数据导出Excel文件中。 首先,我们需要加载Datatables插件和JSZip插件。其中,JSZip插件是用来生成Excel文件的核心插件,需要先行加载。其次,我们需要先设置Datatables的相关参数,在使用到导出功能时,则需要再添加一些部件和配置项。 主要代码如下: ``` //加载Datatables所需的CSS和JS文件 <link rel="stylesheet" type="text/css" href="//cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css"/> <script type="text/javascript" src="//cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script> //加载JSZip和FileSaver插件 <script type="text/javascript" src="//cdn.bootcss.com/jszip/3.2.2/jszip.js"></script> <script type="text/javascript" src="//cdn.bootcss.com/FileSaver.js/2014-11-29/FileSaver.min.js"></script> //设置Datatables参数 $('#example').DataTable( { dom: 'Bfrtip', buttons: [ 'excel' ] }); //通过添加部件并配置项使用导出功能 $('#example').dataTable( { buttons: [ { extend: 'excelHtml5', text: 'Export to Excel', exportOptions: { modifier: { page: 'all' } } } ] }); ``` 这里,我们首先通过设置Datatables的参数,包括dom和buttons选项。其中,dom选项用于设置Datatables元素的布局,而buttons选项则用于设置导出按钮的位置和格式。通过在buttons选项中设置excel按钮,就可以很方便地实现将数据导出Excel文件功能。 接着,我们再通过添加部件并配置项的方式来使用Datatables导出功能。其中,extend选项用于指定要扩展的按钮类型,而text选项则用于指定导出按钮的文本显示内容。而exportOptions选项则指定了导出参数的配置选项,可以设置参数的修饰符、列选择器、标题等。在这个例子中,我们设置了修饰符为“所有页面”,即将所有分页的数据都导出Excel文件中。 最后,我们需要在页面的HTML结构中加入一个用于呈现表格的元素,我们称之为Datatables容器,如下代码所示: ``` <table id="example" class="display" style="width:100%"> <thead> <tr> <th>Name</th> <th>Position</th> <th>Office</th> <th>Age</th> <th>Start date</th> <th>Salary</th> </tr> </thead> <tbody> <tr> <td>Tiger Nixon</td> <td>System Architect</td> <td>Edinburgh</td> <td>61</td> <td>2011/04/25</td> <td>$320,800</td> </tr> ...... </tbody> </table> ``` 通过以上步骤,我们就可以轻松地将Datatables中的数据导出Excel文件,为用户提供了更加便捷的数据处理方式。同时,我们也可以根据具体的需求,对导出功能进行一定的定制和优化,以满足不同的开发需求。 ### 回答3: datatables是一个非常流行的jQuery插件,用于在网页中展示表格数据,并且具有搜索、分页、排序等功能。在某些情况下,我们需要将datatables中的数据导出Excel文件中,以便用户离线查看和分析。 实现datatables导出Excel通常需要用到第三方插件,下面介绍两种常用的方法。 1. 使用TableTools插件 TableTools是一个datatables官方提供的插件,用于导出表格数据到PDF、Excel、CSV等格式。要使用TableTools,需要在页面中引入TableTools的js和swf文件,并进行配置。 初始化代码如下: ``` $(document).ready(function() { var table = $('#example').DataTable({ dom: 'Bfrtip', buttons: [ 'copy', 'csv', 'excel', 'pdf', 'print' ] }); }); ``` 在上面的代码中,参数dom和buttons设置了TableTools的DOM和按钮列表,我们只需要将Excel按钮加入按钮列表即可实现将datatables数据导出Excel文件。 2. 使用PHPExcel库 PHPExcel是一个开源的PHP解析和生成Excel的类库,具有多种功能和灵活的配置,可以通过读取和操作Excel文件中的数据,生成各种图表,以及读取和操作常用文件格式,如CSV、HTML和PDF等。 使用PHPExceldatatables数据导出Excel需要以下步骤: - 在服务器上安装PHPExcel库; - 在页面中引入PHPExcel相关的文件; - 在页面中编写PHP代码,读取datatables数据,并调用PHPExcel相关的类库将数据写入Excel文件。 具体操作过程比较繁琐,需要熟悉PHPExcel的API和方法,才能编写出高效和可靠的代码。 综上所述,将datatables数据导出Excel文件是一项常见的需求,在处理大量数据和需要离线查看时非常有用。使用TableTools和PHPExcel两种方法都可以实现,其中TableTools比较容易上手,而PHPExcel具有更多的功能和更丰富的配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值