我正在尝试使用Google表格中的信息创建自己的CSV文件。信息可以正确复制,但是,只要单元格中有0,它就会被忽略,并且我的CSV文件中出现空白。有什么建议么?下面的代码。
function saveAsCSV() {
var filename = "trainingImport"; // CSV file name
var folder = "1vzTFeLwwR35XluyE39Uk9mzbLVJHE3XB"; // Folder ID
var sprdSheet = SpreadsheetApp.getActiveSpreadsheet();
var outPut = sprdSheet.getSheetByName("Output");
var range = outPut.getDataRange();
var values = range.getValues();
var csv = "";
for (var i = 0; i < values.length; i++) {
var row = "";
for (var j = 0; j < values.length[i]; j++) {
if (values[i][j]) {
row = row + values[i][j];
}
if (outPut.getRange((i+1),(j+2)).isBlank()) {
break;
}
row = row + ",";
}
csv += row + " \n";
}
var url = DriveApp.getFolderById(folder)
.createFile(filename, csv, MimeType.CSV)
.getDownloadUrl()
.replace("?e=download&gd=true","");
return url;
}
答案 0 :(得分:0)
问题出在内部if
循环中的for
语句中:
if (values[i][j]) {
row = row + values[i][j];
}
如果values[i][j]
为0,则因为0为虚假,所以该语句为假。
这意味着,当转换为布尔值时,0的作用类似于文字false
,这也适用于空字符串null
,undefined
和NaN
。
如果将其更改为
if (values[i][j] || values[i][j] === 0) {
row = row + values[i][j];
}
0
将添加到该行。