我有一个脚本,它可以将数据从csv文件导入到Google表中。我想包括以下内容,以便从数据中删除引号-- .replace(/"/g,“),但不确定添加到现有脚本中的最佳位置/语法。
我是否将其添加到将csv数据转换为数组的部分-
function CSVToArray_(strData){
var rows = strData.split("\n");
//Logger.log(rows.length);
var array = [];
for(n=0;n<rows.length;++n){
if(rows[n].split(',').length>1){
array.push(rows[n].split(','));
}
}
Logger.log(array);
return array;
}...or到使用数组数据更新工作表的部分?
var impSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("CtrlSht").getRange("B8:B8").getValue();
var csvData = CSVToArray_(csvFile);// convert to 2D array
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(impSheet);
sheet.clear();
sheet.getRange(1,1, csvData.length, csvData[0].length).setValues(csvData);// write to sheet in one single step 如有任何指导/建议,将不胜感激。
发布于 2015-06-12 08:16:34
上面的代码是危险的,如果元素中有逗号,即使它在有效的csv引号中,也会中断。我建议去看看这个图书馆的https://code.google.com/p/jquery-csv/。另外,您希望删除引号还是希望将字符串值转换为数字?也就是说,您是否获得了"2"并希望它只是2,如果是这样,您可能只想将它解析为如下数字:parseInt("2")。
如果您不关心上面的内容,那么下面的内容应该会有效:
function CSVToArray_(strData){
var rows = strData.split("\n");
//Logger.log(rows.length);
var array = [];
var array_inner;
// iterate over rows
for (n=0; n<rows.length; ++n) {
array_inner = rows[n].split(',');
if (array_inner.length>1) {
// iterate over columns
for (m=0; m<array_inner.length; m++) {
array_inner[m] = array_inner[m].replace(/"/g, "");
}
array.push(array_inner);
}
}
Logger.log(array);
return array}
https://stackoverflow.com/questions/30798143
复制相似问题