背景
当 CSV 文件带有特殊符号(例如:换行符、逗号)时,使用 NetSuite API 中的file.lines.iterator()
迭代器获取数据可能会导致解析失败或数据错乱
解决方案
使用第三方库 papaparse,官方地址:https://www.papaparse.com/
关键代码如下:
define(['N/file', './papaparse.min.js'], function (file, papaparse) {
function parseCsvFile() {
var filePath = 'SuiteScripts/test.csv';
var fileObj = file.load({ id: filePath });
var fileData = papaparse.parse(fileObj.getContents()).data;
// fileData的第一行为标题行
for (var i = 1; i < fileData.length; i++) {
var rowData = fileData[i];
var subsidiaryId = rowData[0];
var locationId = rowData[1];
//...
}
}
});
注意:该实现方案会存在 10MB 的限制,原因是 file.getContents()函数只能获取 10MB 的数据