I need a little help with my script, I wrote by help from internet.
I export data from spreadsheet to json-file and save it on google-drive, but every new file doesn't replace old file. Script creates new file with ending at name of new file (1), (2) etc:
- exp_planning.json - this file I need
- exp_planning(1).json - this file and other with I not need
Be happy for your help! Thank you, friends!))
function convertSheet2JsonText(sheet) {
// first line(title)
var colStartIndex = 1;
var rowNum = 1;
var firstRange = sheet.getRange(1, 1, 1, 15);
var firstRowValues = firstRange.getValues();
var titleColumns = firstRowValues[0];
// after the second line(data)
var lastRow = sheet.getRange("A2:A").getValues().filter(String).length;
var rowValues = [];
for(var rowIndex = 2; rowIndex <= lastRow; rowIndex ++ ) {
var strRange = sheet.getRange(2, 1, rowIndex, 1).getValue();
if(strRange != "") {
var colStartIndex = 1;
var rowNum = 1;
var range = sheet.getRange(rowIndex, colStartIndex, rowNum, 15);
var values = range.getValues();
rowValues.push(values[0]);
}
}
// create json
var jsonArray = [];
for(var i=0; i<rowValues.length; i++) {
var line = rowValues[i];
var json = new Object();
for(var j=0; j<titleColumns.length; j++) {
json[titleColumns[j]] = line[j];
}
jsonArray.push(json);
}
//return jsonArray;
Logger.log(jsonArray);
var blob,file,fileSets,obj;
var folder = DriveApp.getFoldersByName('JSON_EXPFILES').next();
fileSets = {
title: 'exp_planning.json',
mimeType: 'application/json',
"parents": [
{
"id": folder.getId(),
"kind": "drive#parentReference"
}
]
};
blob = Utilities.newBlob(JSON.stringify(jsonArray), "application/vnd.google-apps.script+json");
file = Drive.Files.insert(fileSets, blob);
Logger.log('ID: %s, File size (bytes): %s, type: %s', file.id, file.fileSize, file.mimeType);
}
function doGet() {
var sheetName = "для ТК";
var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName);
var json = convertSheet2JsonText(sheet);
return ContentService
.createTextOutput(JSON.stringify(json))
.setMimeType(ContentService.MimeType.JSON);
}
I found one way with deleting old file before creating new...
var allFiles = folder.getFilesByName(fileSets.title);
while (allFiles.hasNext()) {
file = allFiles.next();
file.getParents().next().removeFile(file);
}
but may be there is anything else about replacement old file?