1. 程式人生 > >JS匯出excel外掛總結

JS匯出excel外掛總結

目前找到的幾種用來匯出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裡有,都可以參考