它能夠正確處理由逗號分隔的數(shù)據(jù),并且能夠忽略雙引號中的逗號。文章來源地址http://www.zghlxwxcb.cn/news/detail-517084.html
讀取csv內(nèi)容
const getCSVData = (file: RcFile): Promise<string> => {
return new Promise((resolve, reject) => {
const csvReader = new FileReader();
csvReader.readAsText(file);
csvReader.onload = (e) => {
const data = e.target?.result;
resolve(data as string);
};
csvReader.onerror = (error) => reject(error);
});
};
解析csv內(nèi)容
/**
* 將csv格式字符串轉(zhuǎn)為對象數(shù)組
* @param csv csv字符串
* @param choosenField 轉(zhuǎn)換得到的字段,默認(rèn)為全部獲取
* @returns 返回轉(zhuǎn)換得到的結(jié)果
*/
export const csvToObjArr = (csv: string, choosenField?: string[]) => {
const contents = csv.split(/\r\n|\n/);
const headers = contents[0].split(',');
const res = contents.slice(1, -1).map((line, index) => {
const obj: any = {};
// 以逗號分隔,但是不包括雙引號中的逗號
line.split(/,(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/).forEach((item, i) => {
if (item !== '') {
if(choosenField){
if(choosenField.includes(headers[i])){
obj[headers[i]] = item;
}
}else{
obj[headers[i]] = item;
}
}
});
return obj;
});
return res;
};
文章來源:http://www.zghlxwxcb.cn/news/detail-517084.html
到了這里,關(guān)于將csv內(nèi)容轉(zhuǎn)為對象數(shù)組,它能夠正確處理由逗號分隔的數(shù)據(jù),并且能夠忽略雙引號中的逗號的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!