1. 程式人生 > >js檔案操作之——匯出Excel (js-xlsx)

js檔案操作之——匯出Excel (js-xlsx)

1. 最簡單的Excel匯出

原理:js可以通過base64或者blob,把一個包含一個<table>的<html>串,匯出成xx.xls格式。而Excel可以開啟html檔案。這樣看起來,就是一個成功的Excel匯出。

var tableHtml='<html><head><meta charset="UTF-8"></head><body><table><tr><td>only one</td></tr></table></body></html>';
//base64 URL形式檔案下載
var oa = document.createElement('a');
oa.href = 'data:application/vnd.ms-excel;base64,'+window.btoa(tableHtml);
oa.download = 'htmltable-base64.xls';//通過A標籤 設定檔名
oa.click();

檔案,在js中,除了可以是base64,也可以是一個blob。

- base64形式的檔案描述,在js或者html中,就是一個很長的base4字串
- blob形式的檔案描述,在js或者html中,是一個URL形式的字串,他指向的是瀏覽器記憶體中的一個檔案片段,形如"blob:http://sheetjs.com/f999f57f-b79f-4293-a317-3bbf6ea58788"

blob形式的Excel匯出,如下:

//blob URL形式檔案下載
var tableHtml='<html><head><meta charset="UTF-8"></head><body><table><tr><td>only one</td></tr></table></body></html>';
var excelBlob = new Blob([tableHtml], {type: 'application/vnd.ms-excel'});
var oa = document.createElement('a');
oa.href = URL.createObjectURL(excelBlob);
oa.download = 'htmltable-blob.xls';
document.body.appendChild(oa);
oa.click();