在Node.js中使用ejsexcel輸出EXCEL檔案

來源:互聯網
上載者:User

標籤:this   輸出   color   核心   資料   條件   而且   關鍵字   render   

1、背景

在Nodejs應用程式中輸出Excel,第一印象想到的一般是node-xlsx,這類外掛程式不僅需要我們通過JS寫入資料,還需要通過JS進行EXCEL顯示樣式的管理

這是個大問題,不僅代碼冗餘,而且非常不易於維護,假設業務需要合并一個儲存格,或者換個顏色,我們都需要重新修改代碼。

反思這個問題的核心,跟使用JS來操作頁面樣式其實是同一個道理,我們沒有把資料/商務邏輯操作和樣式分離

在WEB開發中,我們有了CSS來分離處理樣式的問題。

現在,在輸出EXCEL的時候,我們也希望將樣式問題分離出去。

 

2、ejsexcel 

ejsexcel 就是在這樣的背景下誕生的。

1、業務人員提供EXCEL模板,包含顯示樣式以及固定文本。

2、資料部分由開發人員按照ejs格式錄入。

3、Nodejs應用程式只需要準備好資料,然後通過ejsexcel注入到EXCEL模板中即可。

 

3、DEMO

1、Excel模板

可以輸出單個對象,也可以通過forRow關鍵字進行迴圈輸出。

另外,其中的指令碼同樣支援JS相關函數。

 

2、注入資料

 //讀取excel模板        let daily_excel_template = fs.readFileSync(DAILY_TEMPLATE)        //用資料來源(對象)data渲染Excel模板        let self = this        ejsExcel.renderExcelCb(daily_excel_template, reportData, function(err,exlBuf2){            if(err) {                logger.fatal(‘[EXCEL產生失敗!]:‘+DAILY_TEMPLATE)                logger.info(err)                return;            }            fs.writeFileSync(filename, exlBuf2);            logger.info(‘[EXCEL產生成功!]:‘+DAILY_TEMPLATE)        });

 

以上是部分代碼:

首先讀模數板EXCEL檔案,然後調用ejsExcel.renderExcelCb方法將資料注入模板中,由模板產生最終的EXCEL檔案。

 

4、注意的問題
  • 作者手工編譯了Node-Expat,所以使用前確保你使用的node版本以及作業系統已經被正確編譯,如沒有需要自行編譯對應版本的node-expat二進位檔案。點擊這裡查看目前已經編譯的版本。
  • 目前還不支援EXCEL條件式格式設定。

 

在Node.js中使用ejsexcel輸出EXCEL檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.