layui數據表格導出數據
1、使用 table.exportFile(id, data, type)
2、儘管 table 的工具欄內置了數據導出按鈕,但有時你可能需要通過方法去導出任意數據,那麼可以藉助以下方法:
語法:table.exportFile(id, data, type)
var ins1 = table.render({
elem: '#demo'
,id: 'test'
//,…… //其它參數
})
//將上述表格示例導出爲 csv 文件
table.exportFile(ins1.config.id, data); //data 爲該實例中的任意數量的數據
3、相關代碼:
<!-- HTML -->
<!-- 導出按鈕 -->
<button class="layui-btn" id="export-id">
<i class="layui-icon layuiadmin-button-btn">導出</i>
</button>
<!-- 表格載體 -->
<table id="table-id"></table>
//JS
layui.use(['element', 'table', 'form', 'jquery', 'laydate','layer'], function () {
let table = layui.table; //表格
let form = layui.form; //表單
let layer = layui.layer; //彈層
let $ = layui.jquery;
let exportData = {}; //定義導出報表的數據
let tableObj = table.render({
elem: '#table-id' //表ID
,url: '/.../.../...' //數據來源路徑
,cols: [[
/*{field: 'id', width: 80, title: 'ID', sort: true},*/
{field: 'name', align:'center',title: '姓名'}
,{field: 'hobby', title: '愛好'}
,{field: 'create_time', title: '創建時間'}
]]
,text: {
none: '暫無數據!'
}
,where:{'target_date':'2020-02'}//查詢條件
,page: false //關閉分頁
,parseData: function(res) {
exportData = res.data.data;
return {
code: res.code,
msg: res.msg,
count: res.data.count,
data: res.data.data
}
}
});
//表格導出
$("#export-id").click(function(){
table.exportFile(tableObj.config.id, exportData, 'xls');
})
});
4、如果title設置爲ID或者ID_XXXX(XXXX爲字符串),可能會報錯,如圖:
解釋:
SYLK 文件時一個文本文件,開頭的爲“ID”或“ID_XXXX”(其中XXXX是文本字符串)。
SYLK 文件的第一個的記錄是在 ID_Number 記錄的。
Excel 將識別該文本在文本文件開頭時, 它會將該文件解釋爲 SYLK 文件。
Excel 將嘗試從該 SYLK 格式轉換該文件,但不能這樣做,因爲"ID"字符後不有任何有效的 SYLK 代碼。
因爲 Excel 不能轉換該文件,您收到錯誤消息。
當您打開一個文本文件、 CSV 文件和文件的前兩個字符是大寫字母"I","D"時,會發生此問題。
例如文本文件可能包含以下文本:
ID, STATUS 123, open 456, closed
如果前兩個字母小寫"i"和"d"不會發生此問題的 。
解決:
大概意思是你設置的title裏有名爲ID或者ID_XXXX,改爲id或者直接去除即可。