国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

node表格模塊exceljs介紹1--基本使用

supernavy / 2611人閱讀

摘要:前言用做服務器端表格處理時,需要使用處理模塊,網上能搜到的插件大概就三四種等,經過我的使用,發現最強大,最全面的就是。合并單元格使用此時合并了兩個單元格。后續正常調用即可。

前言

用node做服務器端表格處理時,需要使用excel處理模塊,網上能搜到的插件大概就三四種(xlsx,excel-export,node-xlsx等),經過我的使用,發現最強大,api最全面的就是exceljs
然而因為其官方文檔十分簡潔(陋),初起時使用過程并不那么順利,這里結合自己的經驗,對exceljs模塊及其基本用法進行簡單介紹,對一些自己遇到的坑進行總結。

一、安裝及引入模塊
npm install exceljs

使用npm命令安裝之后,在所需要的文件中引入exceljs模塊:

var Excel = require("exceljs");
二、創建工作簿及工作表

引入之后,我們就可以直接通過js創建工作簿,注意:創建工作表之前必須創建工作簿。

var workbook = new Excel.Workbook();

工作簿有很多屬性可以設置,比如創建人、修改時間等一般用不上的信息,一般不需要設置,如果你有特殊需要,那么請參照下述設置即可:

workbook.creator = "WJY";//設置創建者
workbook.lastModifiedBy = "Her";//上次修改人
workbook.created = new Date(1985, 8, 30);//創建時間
workbook.modified = new Date();//修改時間

更多詳細的關于創建工作簿的屬性設置請[參考官方][1]。

創建工作簿之后,需要為工作簿添加工作表,用來存放我們的數據:

   var sheet = workbook.addWorksheet("My Sheet");

通常這樣創建就夠了,但是也可以設置創建的工作表的屬性:

// 創建標簽為紅色的表格

var sheet = workbook.addWorksheet("My Sheet", {properties:{tabColor:{argb:"FFC0000"}}});

// 創建網格線隱藏的表格

var sheet = workbook.addWorksheet("My Sheet", {properties: {showGridLines: false}});

// 創建第一行第一列凍結的表格

var sheet = workbook.addWorksheet("My Sheet", {views:[{xSplit: 1, ySplit:1}]});

三、表格填充(數據寫入)

在寫入數據之前,要指定使用的工作表,可以像下面這樣操作:

// 通過表格名字(創建時的"My Sheet")

var worksheet = workbook.getWorksheet("My Sheet");

// 通過表格順序數(id),即第幾張表格,這里注意,exceljs不是從0開始計算,而是1。

var worksheet = workbook.getWorksheet(1);

拿到工作表之后,可以通過兩種方式將表格內容生成:

1.worksheet.getCell("A1").value = "value";
這種方式較為靈活,可填寫任意位置的表格,利用循環嵌套等方式可生成想要的表格。
合并單元格使用: worksheet.mergeCells("I2:J2");此時合并了I2 J2兩個單元格。
2.如果數據是對象數組data=[{name:"a"},{name:"b"},{name:"c"}],也就是數據格式良好,有固定的鍵值對,那么推薦這種方式:
先定好表頭

worksheet.columns = [
 { header: "姓名", key: "name", width: 10 },
 ];

header:參數即為在表頭里出現的值,key表示這列的值對應的對象的key(本例為name),width為表格列寬。
設置表頭之后,使用addrow方法即可將數據寫入表中,如下:

for(let i =0;i
四、生成xlsx文件
var filename="test.xlsx";//生成的文件名
fpath=path.join(__dirname,"../download/"+filename)//文件存放路徑
workbook.xlsx.writeFile(fpath)//將workbook生成文件
    .then(function() {
        //文件生成成功后執行的操作,這里是將路徑返回客戶端,你可以有自己的操作
      res.send({filePath:filename})
    });
總結、

有時候我們數據格式良好,但需要實現自定義表頭(表頭有合并單元格、多級表頭等),這時該怎么辦呢?
混合使用 worksheet.mergeCells()worksheet.getCell().value
設置表頭,之后使用

worksheet.columns = [
     {  key: "name", width: 10 },
     ];

注意:這里沒有header的key,如果有,將會覆蓋我們的自定義表頭內容。
后續正常調用

for(let i =0;i

即可。
更多資料參閱官方文檔
如有問題可留言,互相交流解決。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/107285.html

相關文章

  • 【阿里前端面試點】目標,想成為一名好的前端工程師

    摘要:廣義的定位,涉及到瀏覽器,手機里面的用戶交互展示的內容,都屬于前端。對自己有好處因為多次和阿里的面試官進行了電話面試溝通,所以這些不只是一個面試官提出的問題,而是多個面試官提出的問題。保持一個虛心學習的狀態。 介紹 狹義的來講,前端指的就是我們常說的html, css, javascript. 三者必不可缺. 而其中涵蓋的知識點不可一篇文章就能完整的講述出來的。廣義的定位,涉及到瀏覽器...

    TalkingData 評論0 收藏0
  • 【進階1-5期】JavaScript深入之4類常見內存泄漏及如何避免

    摘要:本期推薦文章類內存泄漏及如何避免,由于微信不能訪問外鏈,點擊閱讀原文就可以啦。四種常見的內存泄漏劃重點這是個考點意外的全局變量未定義的變量會在全局對象創建一個新變量,如下。因為老版本的是無法檢測節點與代碼之間的循環引用,會導致內存泄漏。 (關注福利,關注本公眾號回復[資料]領取優質前端視頻,包括Vue、React、Node源碼和實戰、面試指導) 本周正式開始前端進階的第一期,本周的主題...

    red_bricks 評論0 收藏0
  • 讓你基于jQuery的插件兼容commonjs,amd規范

    摘要:示例小明小明小明小明小花小花姓名價格基于上面的方法我寫了個簡易的基于的自動生成表格的插件,可以合并單元格。對于兼容這些規范,寫法也很多,希望多多指教完整代碼 事情是這樣的,我寫了一個基于jQuery的插件,在傳統的開發模式中,我們需要現在頁面引入jQuery.js,然后在引入我們的插件,我們的插件才能使用。但是隨著webpack的興起,我不在想一步步的寫入script標簽,寫著一堆的s...

    GeekGhc 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<