nodeJS 利用xlsx匯出外掛程式匯出excel檔案 (可以設定excel儲存格顏色/寬度),nodejsxlsx

來源:互聯網
上載者:User

nodeJS 利用xlsx匯出外掛程式匯出excel檔案 (可以設定excel儲存格顏色/寬度),nodejsxlsx

var XLSX = require('xlsx');var _exports = {};module.exports = _exports;_exports.exportXls = function(data) {    var ws = {    s:{    "!row" : [{wpx: 67}]    }    };    ws['!cols']= [];    for(var n = 0; n != data[0].length; ++n){    ws['!cols'].push({         wpx: 170      });    }    var range = {        s : {            c : 10000000,            r : 10000000,        },        e : {            c : 0,            r : 0        }    };    for (var R = 0; R != data.length; ++R) {        for (var C = 0; C != data[R].length; ++C) {            if (range.s.r > R)                range.s.r = R;            if (range.s.c > C)                range.s.c = C;            if (range.e.r < R)                range.e.r = R;            if (range.e.c < C)                range.e.c = C;            var cell = {                v : data[R][C],    s:{    fill: { fgColor: { rgb: "33000000"}},    alignment: {horizontal: "center" ,vertical: "center"}, }            };            if (cell.v == null)                continue;            var cell_ref = XLSX.utils.encode_cell({                c : C,                r : R            });            if ( typeof cell.v === 'number')                cell.t = 'n';            else if ( typeof cell.v === 'boolean')                cell.t = 'b';            else if (cell.v instanceof Date) {                cell.t = 'n';                cell.z = XLSX.SSF._table[14];                cell.v = datenum(cell.v);            } else                cell.t = 's';            if(R){            delete cell.s.fill;            }            ws[cell_ref] = cell;        }    }    data.fileName = "sample.xlsx";    var workbook = new Workbook();    var wsName = data.fileName.split(".xlsx")[0];    workbook.SheetNames.push(wsName);    workbook.Sheets[wsName] = ws;    if (range.s.c < 10000000)        ws['!ref'] = XLSX.utils.encode_range(range);    var wopts = {        bookType : 'xlsx',        bookSST : false,        type : 'binary'    };    var wbout = XLSX.write(workbook, wopts);    XLSX.writeFile(workbook, data.fileName);    return wbout;};function Workbook() {    if (!(this instanceof Workbook))        return new Workbook();    this.SheetNames = [];    this.Sheets = {};}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.