重慶市建設工程信息網一體化平臺河源市企業(yè)網站seo價格
前言
今天用到XLSX來解析excel文件,調用XLSX.utils.sheet_to_json(worksheet),發(fā)現(xiàn)如果單元格為空的話,解析出來的結果,就會缺少相應的key(如圖所示)。但是我想要單元格為空的話,值就默認給空字符串,怎么辦呢?只能去看看源碼了,看有沒有給默認值的方法。
源碼探究
找源碼里的sheet_to_json()方法,發(fā)現(xiàn)有三個同名的方法,有兩個參數(shù),第一個worksheet是要解析的excel文件的工作簿對象,第二參數(shù)opts?: Sheet2JSONOpts,
?表示是這個參數(shù)可有可無,你不傳就沒有,Sheet2JSONOpts這個是什么東西?我也不知道,只能接著往下看源碼有沒有這個東西的定義。(一般都會有)
果然,如我所料,終于在源碼找到Sheet2JSONOpts的定義,發(fā)現(xiàn)有五個變量,這五個變量都帶?,說明這個五個變量都可有可無。然后我就看到圖中紅框的部分,發(fā)現(xiàn)注釋寫這著Default value for null/undefined values,意思是值為空或未定義的默認值變量。這是不就是我要找的解決方法了嗎?高興得趕緊去實現(xiàn)一下。
解決
按照源碼來定義第二個參數(shù),給defval賦值為空的字符串,如代碼所示
const sheet2JSONOpts = {/** Default value for null/undefined values */defval: ''//給defval賦值為空的字符串
}
//調用方法
const results = XLSX.utils.sheet_to_json(worksheet, sheet2JSONOpts)
console.log(results)
最后,結果成功解決我問題,如下圖所示
總結
在用一些插件的時候,有些問題,其實可以通過看源碼來找到很好的解決方法,插件會封裝好一些方法,來給我們調用。