溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

nodejs中怎么解析excel

發(fā)布時(shí)間:2021-07-08 16:07:18 來(lái)源:億速云 閱讀:791 作者:Leah 欄目:大數(shù)據(jù)

這篇文章給大家介紹nodejs中怎么解析excel,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

首先用這個(gè)包來(lái)讀取一個(gè)excel文件,excel文件內(nèi)容如下:

nodejs中怎么解析excel

內(nèi)容很簡(jiǎn)單就是一個(gè)表格。

使用node-xlsx的話我們要先安裝,并引入。node-xlsx引入到文件中用一個(gè)自定義變量來(lái)接收,這個(gè)變量上有兩個(gè)方法,parse和build。

parse就是解析excel的意思,我們先看用nodejs解析上面的表格得到數(shù)據(jù)的代碼如下:

var xlsx = require('node-xlsx').default;
// parse方法的參數(shù)為要解析的excel的路徑
var list = xlsx.parse('./1234.xlsx');
// 輸出數(shù)據(jù)
console.log(list);

打印結(jié)果如下:

nodejs中怎么解析excel

我們看到這個(gè)結(jié)果是一個(gè)數(shù)組,數(shù)組的每一項(xiàng)是一個(gè)對(duì)象,對(duì)象中有如下屬性:name、data。

name是excel中文檔的名稱,這里需要注意,一個(gè)excel可以有多個(gè)文檔如圖:

nodejs中怎么解析excel

所以上面的list得到的是一個(gè)數(shù)組。

data表示當(dāng)前文檔下的數(shù)據(jù),是一個(gè)二維數(shù)組,我們將其輸出:

nodejs中怎么解析excel

可以看到和上面表格中的數(shù)據(jù)是一樣的。只不過(guò)這個(gè)數(shù)據(jù)的格式比較特殊,通常第一行為標(biāo)題行,之后的為實(shí)體數(shù)據(jù),并以數(shù)組的形式存儲(chǔ)。

這里需要注意的是如果excel中的表格某個(gè)數(shù)據(jù)為空沒(méi)有填寫(xiě)如圖:

nodejs中怎么解析excel

此時(shí)讀出來(lái)的數(shù)據(jù)如下:

nodejs中怎么解析excel

轉(zhuǎn)換成json如下:

nodejs中怎么解析excel

這個(gè)npm包還是挺人性化的,以上便是用nodejs讀取excel文件。

下面來(lái)看一下如何用nodejs將數(shù)據(jù)寫(xiě)入excel,用nodejs將數(shù)據(jù)寫(xiě)入excel的話,數(shù)據(jù)必須滿足要求才可以,并且這里需要用的nodejs的fs模塊。

代碼如下:

nodejs中怎么解析excel

運(yùn)行結(jié)果會(huì)輸出到test4.xlsx文件中,結(jié)果如下:

nodejs中怎么解析excel

從上面的運(yùn)行結(jié)果可以看出,在構(gòu)建寫(xiě)入的數(shù)據(jù)的時(shí)候,數(shù)據(jù)必須設(shè)置為數(shù)組,并且為空的項(xiàng)設(shè)置為null,然后按照node-xlsx的接口構(gòu)建一個(gè)buffer數(shù)據(jù),最后將buffer數(shù)據(jù)輸出到頁(yè)面。

拓展一下,下面來(lái)看一下下面的表格:

nodejs中怎么解析excel

多了一個(gè)合并的表頭,這樣的數(shù)據(jù)該如何輸出呢?代碼如下:

nodejs中怎么解析excel

關(guān)于nodejs中怎么解析excel就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI