TableExport是一款可以将HTML表格导出为Excel xlsx格式、xls格式,以及csv和txt文件的jQuery插件。TableExport插件使用简单,默认使用Bootstrap的CSS表格样式,也支持普通的HTML表格。

安装

可以通过bower或npm来安装TableExport插件。

$ bower install tableexport.js
$ npm install tableexport              
                

使用方法

TableExport插件依赖于jQuery(1.2.1+),FileSaver.js。为了支持.xlsx(Office Open XML SpreadsheetML Format)格式,你必须在 FileSaver.js 和 TableExport.js文件之前引入xlsx-core.js文件。为了使旧的浏览器(Firefox .xlsx,需要在 FileSaver.js 文件之前引入 Blob.js文件。

       
<script src="jquery.min.js"></script>
<script src="xlsx-core.js"></script>
<script src="blob.js"></script>
<script src="filesaver.js"></script>
<script src="tableexport.js"></script>
                
CSS样式

TableExport插件默认使用Bootstrap框架来制作表格和按钮。如果你在项目中没有使用Bootstrap,可以将参数bootstrap设置为false

$("table").tableExport({
    bootstrap: false
});         
                

如果使用了Bootstrap,那么有4个可用的按钮class类,它们分别为.xlsx, .xls, .csv 和 .txt的导出按钮提供样式。

初始化插件

在页面DOM元素加载完毕之后,可以通过tableExport()方法来初始化该表格插件。

$("table").tableExport();
                

配置参数

TableExport插件的默认配置参数如下:

/* Defaults */
$("table").tableExport({
    headings: true, 
    footers: true, 
    formats: ["xls", "csv", "txt"],
    fileName: "id",
    bootstrap: true,
    position: "bottom",
    ignoreRows: null,
    ignoreCols: null
});                  
                
  • headings:是否在<thead>元素中显示表格的头部(th或td元素)。
  • footers:是否在<tfoot>元素中显示表格的脚部(th或td元素)。
  • formats:导出的文件类型,会生成相应的导出按钮。
  • fileName:下载的文件名称。
  • bootstrap:是否使用bootstrap样式的按钮。
  • position:标题元素相对于表格的位置,可以是top或bottom。
  • ignoreRows:设置不被导出的表格行,可以是数值或一个数值数组。
  • ignoreCols:设置不被导出的表格列,可以是数值或一个数值数组。
按钮设置

每一个按钮都有一个自己的class类,和显示的内容。如下:

/* default class, content, and separator for each export type */

/* Excel Open XML spreadsheet (.xlsx) */
$.fn.tableExport.xlsx = {
    defaultClass: "xlsx",
    buttonContent: "Export to xlsx",
    mimeType: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
    fileExtension: ".xlsx"
};

/* Excel Binary spreadsheet (.xls) */
$.fn.tableExport.xls = {
    defaultClass: "xls",
    buttonContent: "Export to xls",
    separator: "\t",
    mimeType: "application/vnd.ms-excel",
    fileExtension: ".xls"
};

/* Comma Separated Values (.csv) */
$.fn.tableExport.csv = {
    defaultClass: "csv",
    buttonContent: "Export to csv",
    separator: ",",
    mimeType: "application/csv",
    fileExtension: ".csv"
};

/* Plain Text (.txt) */
$.fn.tableExport.txt = {
    defaultClass: "txt",
    buttonContent: "Export to txt",
    separator: "  ",
    mimeType: "text/plain",
    fileExtension: ".txt"
};                  
                

下面是插件额外的默认值。

/* default charset encoding (UTF-8) */
$.fn.tableExport.charset = "charset=utf-8";

/* default filename if "id" attribute is set and undefined */
$.fn.tableExport.defaultFileName = "myDownload";

/* default class to style buttons when not using bootstrap  */
$.fn.tableExport.defaultButton = "button-default";

/* bootstrap classes used to style and position the export buttons */
$.fn.tableExport.bootstrap = ["btn", "btn-default", "btn-toolbar"];

/* row delimeter used in all filetypes */
$.fn.tableExport.rowDel = "\r\n";                  
                

TableExport插件的github地址为:https://github.com/clarketm/TableExport