JS匯出excel外掛總結
阿新 • • 發佈:2019-01-06
目前找到的幾種用來匯出Excel的外掛就是這些,其餘的還有一個需要jQuery2.0以上的版本,或者是不更新了的,就不在這裡了
後面半句是我加的,它主要就是個抓取table標籤,然後匯出為Excel的外掛,支援匯出xls、CSV,很簡單的一款外掛,引數填上table id即可:
優點:傻瓜式匯出table
缺點:功能單一,比較侷限。
<table id="datatable">
<tr>
<td>100</td> <td>200</td> <td>300</td>
</tr >
<tr>
<td>400</td> <td>500</td> <td>600</td>
</tr>
</table>
<a download="somedata.xls" href="#" onclick="return ExcellentExport.excel(this, 'datatable', 'Sheet Name Here');">Export to Excel</a>
<a download="somedata.csv" href ="#" onclick="return ExcellentExport.csv(this, 'datatable');">Export to CSV</a>
github:https://github.com/guyonroche/exceljs
優點:對單元格的定製很全面,適合對錶格樣式有要求的人
缺點:選項多就意味著程式碼多,另外支援的格式不夠豐富(這句是給下一個做鋪墊的)
//Interface
var Excel = require('exceljs');
//Create a Workbook
var workbook = new Excel.Workbook();
//Set Workbook Properties
workbook.creator = 'Me';
workbook.lastModifiedBy = 'Her';
workbook.created = new Date(1985, 8, 30);
workbook.modified = new Date();
workbook.lastPrinted = new Date(2016, 9, 27);
// Set workbook dates to 1904 date system
workbook.properties.date1904 = true;
優點:支援格式最全面,尤其是讀取檔案方面,什麼老古董格式都能讀取,有很多延伸外掛,可以選擇使用
缺點:不是很好弄,相比較而言還是麻煩一些的。
程式碼就不貼了, github裡面有三個例子,各種匯出都有。
關鍵點:
- Exceljs和js-xlsx都有關於使用node和不使用node的不同用法,注意區別使用,不過看似node用法很簡單
- 需要用到
require()
的地方是node的部分,可以參考我的另一篇關於requirejs的文章,例子中用到require()
的地方跳過即可 - 如何建立一個workbook並設定相關的內容:
data = [[A1, A2, A3][B1, B2, B3]];
function Workbook() {
if(!(this instanceof Workbook)) {return new Workbook();}
this.SheetNames = [];
this.Sheets = {};
}
var wb = new Workbook(), ws = sheet_from_array_of_arrays(data);
wb.SheetNames.push(ws_name); //隨便起,字串也好傳變數也好
wb.Sheets[ws_name] = ws;
//如果要設定單元格的寬度
//1.設定一組(也有px版的,wch改為wpx即可)
var wswch = [
{wch:12},
{wch:25},
{wch:5},
{wch:10},
{wch:20},
{wch:30}
];
ws['!cols']= wswch;
//2.在for迴圈裡一個一個的設定,這種情況比較適合只對單個單元格有改動的情況,很簡單,就不上程式碼了
//其餘的部分github上的demo裡有,都可以參考