1. 程式人生 > 其它 >使用XLSX.utils.sheet_to_json()解析excel,給空的單元格賦值為空字串

使用XLSX.utils.sheet_to_json()解析excel,給空的單元格賦值為空字串

前言
今天用到XLSX來解析excel檔案,呼叫XLSX.utils.sheet_to_json(worksheet),發現如果單元格為空的話,解析出來的結果,就會缺少相應的key(如圖所示)。但是我想要單元格為空的話,值就預設給空字串,怎麼辦呢?只能去看看原始碼了,看有沒有給預設值的方法。


原始碼探究
找原始碼裡的sheet_to_json()方法,發現有三個同名的方法,有兩個引數,第一個worksheet是要解析的excel檔案的工作簿物件,第二引數opts?: Sheet2JSONOpts,
?表示是這個引數可有可無,你不傳就沒有,Sheet2JSONOpts這個是什麼東西?我也不知道,只能接著往下看原始碼有沒有這個東西的定義。(一般都會有)

果然,如我所料,終於在原始碼找到Sheet2JSONOpts的定義,發現有五個變數,這五個變數都帶?,說明這個五個變數都可有可無。然後我就看到圖中紅框的部分,發現註釋寫這著Default value for null/undefined values,意思是值為空或未定義的預設值變數。這是不就是我要找的解決方法了嗎?高興得趕緊去實現一下。


解決
按照原始碼來定義第二個引數,給defval賦值為空的字串,如程式碼所示

const sheet2JSONOpts = {
/** Default value for null/undefined values */
defval: ''//給defval賦值為空的字串
}
//呼叫方法
const results = XLSX.utils.sheet_to_json(worksheet, sheet2JSONOpts)
console.log(results)

最後,結果成功解決我問題,如下圖所示


總結
在用一些外掛的時候,有些問題,其實可以通過看原始碼來找到很好的解決方法,外掛會封裝好一些方法,來給我們呼叫。


————————————————
版權宣告:本文為CSDN博主「碼上雲端」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/weixin_43817709/article/details/103754546