我们经常会需要将数据导出为excel文件,php开发者大多使用phpexcel组件,它很强大,但也有点臃肿,对于小型数据的导出来说有些杀猪却用牛刀的感觉,cms大学小编向大家推荐一个在前端基于jq的插件jquery-table2excel.js,它是一个开源项目,地址https://github.com/rainabba/jquery-table2excel
下面为演示代码,要注意引入的js文件路径
折叠XML/HTML 代码
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>html 表格导出 - cmsdx.com</title>
- <script src="js/vendor/jquery-3.2.1.min.js"></script>
- <script src="jquery.table2excel.js"></script>
- <script language="JavaScript" type="text/javascript">
- $(document).ready(function () {
- $("#btnExport").click(function () {
- $("#tableExcel").table2excel({
- exclude : ".noExl", //过滤位置的 css 类名
- filename : "导出文件名称" + new Date().getTime() + ".xls", //文件名称
- name: "Excel Document Name.xlsx",
- exclude_img: true,
- exclude_links: true,
- exclude_inputs: true
- });
- });
- });
- </script>
- </head>
- <body>
- <div >
- <button type="button" id="btnExport" onclick="method5('tableExcel')">导出Excel</button>
- </div>
- <div id="myDiv">
- <table id="tableExcel" width="100%" border="1" cellspacing="0" cellpadding="0">
- <tr>
- <td colspan="5" align="center">html 表格导出Excel</td>
- </tr>
- <tr>
- <td>列标题1</td>
- <td>列标题2</td>
- <td>类标题3</td>
- <td>列标题4</td>
- <td>列标题5</td>
- </tr>
- <tr>
- <td>aaa</td>
- <td>bbb</td>
- <td>ccc</td>
- <td>ddd</td>
- <td>eee</td>
- </tr>
- <tr>
- <td>AAA</td>
- <td>BBB</td>
- <td>CCC</td>
- <td>DDD</td>
- <td>EEE</td>
- </tr>
- <tr>
- <td>FFF</td>
- <td>GGG</td>
- <td>HHH</td>
- <td>III</td>
- <td>JJJ</td>
- </tr>
- </table>
- </div>
- </body>
- </html>
在页面dom结构加载完成后,我们可以通过下面的代码对插件进行初始化
折叠JavaScript 代码
- $("#table2excel").table2excel({
- // 不被导出的表格行的CSS class类
- exclude: ".noExl",
- // 导出的Excel文档的名称
- name: "Excel Document Name",
- // Excel文件的名称
- filename: "myExcelTable"
- });
table2excel插件的可用配置参数有:
exclude:不被导出的表格行的CSS class类。
name:导出的Excel文档的名称。
filename:Excel文件的名称。
exclude_img:是否导出图片。
exclude_links:是否导出超链接
exclude_inputs:是否导出输入框中的内容。
常见问题:
有些朋友在使用中遇到了数字型的值被输出成了科学记数法的问题,例如身份证号,导致数字不正确,我们可以给容器增加内联样式来解决这个问题,使用方式如下
折叠XML/HTML 代码
- <td style="mso-number-format:'\@';"> 数值 </td>