XLSX.utils.sheet_to_json 是為了把excel里面的數(shù)據(jù)解析出來,這是它的定義:
其中,worksheet表示特定表名的工作表,opts屬于可要可不要的參數(shù)。
opts也有幾種類型:
export interface Sheet2JSONOpts extends DateNFOption {
/** Output format */
header?: "A"|number|string[];
/** Override worksheet range */
range?: any;
/** Include or omit blank lines in the output */
blankrows?: boolean;
/** Default value for null/undefined values */
defval?: any;
/** if true, return raw data; if false, return formatted text */
raw?: boolean;
/** if true, skip hidden rows and columns */
skipHidden?: boolean;
/** if true, return raw numbers; if false, return formatted numbers */
rawNumbers?: boolean;
}
其中,header表示控制輸出的類型,range表示跳過的行,defavl表示默認值,為null和undefine時,會默認跳過。
對于header,也有幾種類型
下面直接上例子:
這是我的excel數(shù)據(jù):
這是代碼1:
const outdata = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{ header: 1 })
console.log(outdata)
這是輸出的結果1:
[
[ 's', 'h', 'e', 't' ],
[ 1, <1 empty item>, 2, 3 ],
[ '測試1', '測試2', '測試3' ]
]
這是代碼2:
const outdata = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{ header: 2 })
console.log(outdata)
這是輸出的結果2:
[ { s: 1, e: 2, t: 3 }, { s: '測試1', h: '測試2', e: '測試3' } ]
這是代碼3:
const outdata = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{ header: 8 })
console.log(outdata)
這是輸出的結果3:
[ { s: 1, e: 2, t: 3 }, { s: '測試1', h: '測試2', e: '測試3' } ]
可以看出,
①當header 為1時,輸出為一個二維數(shù)組,輸出了所有數(shù)據(jù),包含了空值項,但每行末尾空值不顯示。
②當header不為1時,輸出一個包含字符串的數(shù)組,不包含空值項,直接跳過空值。同時是一個以第一行為Key值的鍵值對。
這是代碼4:
const outdata = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{ header: 'A' })
console.log(outdata)
這是輸出的結果4:
[
{ A: 's', B: 'h', C: 'e', D: 't' },
{ A: 1, C: 2, D: 3 },
{ A: '測試1', B: '測試2', C: '測試3' }
]
可以看出,當參數(shù)為“A”時,是一個以excel的ABCDE等為key值的鍵值對,默認也不顯示空值。
這是代碼5:
const outdata=XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{ header: ["A","C",1,3] })
console.log(outdata)
這是輸出的結果5:
[
{ '1': 'e', '3': 't', A: 's', C: 'h' },
{ '1': 2, '3': 3, A: 1 },
{ '1': '測試3', A: '測試1', C: '測試2' }
]
這是代碼6:
const outdata=XLSX.utils.sheet_to_json(workbook.Sheets[sheetName],{ header:["A","C",1,3,6,"N"] })
console.log(outdata)
這是輸出的結果6:
[
{ '1': 'e', '3': 't', A: 's', C: 'h' },
{ '1': 2, '3': 3, A: 1 },
{ '1': '測試3', A: '測試1', C: '測試2' }
]
可以看出,當參數(shù)是字符數(shù)組時,輸出是以字符數(shù)組的字符為key值得鍵值對。
同時有這些特性:
①每個字符的序號與excel原始數(shù)據(jù)對應,我的excel只有四列數(shù)據(jù),這里無論你的字符數(shù)組有多長,也只會取前四個。
②不同字符,以阿拉伯數(shù)字從小到大優(yōu)先排列,后面字母從A到Z排列。
一般情況我們都使用,{ header: 1 },只有這個會生成二維數(shù)組,輸出每一行數(shù)據(jù),并且不是鍵值對!文章來源:http://www.zghlxwxcb.cn/news/detail-820331.html
具體詳情可見我參考的文檔文章來源地址http://www.zghlxwxcb.cn/news/detail-820331.html
到了這里,關于xlsx.utils.sheet_to_json的{ header: 1 }起的作用,header屬性的研究的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!