datatables插件导出excel【指定excel单元格格式,禁止用科学计数法显示】

1.导出excel时将单元格数据转换成文本
datatables插件下载excel时,单元格数据是超过十位数的数字字符串(数据类型是string),下载时却用科学计数法显示,不符合需求。(最常见的就是下载身份证号码的情况)。

如果不做任何额外设置,下载的excel会如图以科学计数法的形式显示,需双击后才会显示正常。
以科学计数法显示
双击后显示正常:
双击后显示正常

解决方法:
stackoverflow上第四个答案

var table = $('#table_id').DataTable({
    dom : 'Bfrtlip',    
    columnDefs: [{
       targets:[1],//指定哪几列
       render: function(data){
               return "\u200C" + data ; 
         }
    }]
});

2.导出excel时,更改表格中数据
datatables官网上的例子

$(document).ready(function() {
    var buttonCommon = {
        exportOptions: {
            format: {
                body: function ( data, row, column, node ) {
                    // Strip $ from salary column to make it numeric
                    return column === 5 ?
                        data.replace( /[$,]/g, '' ) :
                        data;
                }
            }
        }
    };

    $('#example').DataTable( {
        ajax: '../../../../examples/ajax/data/objects.txt',
        columns: [
            { data: 'name' },
            { data: 'position' },
            { data: 'office' },
            { data: 'extn' },
            { data: 'start_date' },
            { data: 'salary' }
        ],
        dom: '<"#btn_id"B>frtip',//可在此设置下载的按钮的id和样式等
        buttons: [
            $.extend( true, {}, buttonCommon, {
                extend: 'copyHtml5'
            } ),
            $.extend( true, {}, buttonCommon, {
                extend: 'excelHtml5'
            } ),
            $.extend( true, {}, buttonCommon, {
                extend: 'pdfHtml5'
            } )
        ]
    } );
} );
### 回答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具有更多的功能和更丰富的配置。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值