我在几个工作表中有一个包含日期的列,当我出于某种原因将此工作表中的数据合并到另一个电子表格时,每个日期都会增加 10 小时。
function runTransferToMasterSheet() {
var folder = DriveApp.getFolderById("folderID");
var contents = folder.getFiles();
var file;
var data;
var sheetMaster = SpreadsheetApp.openByUrl('sheetURL').getSheets()[0];
var range = sheetMaster.getRange("A2:G120000");
range.clear();
while(contents.hasNext()){
file = contents.next();
var sheet = SpreadsheetApp.openById(file.getId()).getSheets()[0];
// delete row with columns names
sheet.deleteRow(1);
var data = sheet.getDataRange().getValues();
setDataToMaster(sheetMaster, sheet, data);
}
}
function setDataToMaster(sheetMaster, sheet, data) {
var sheetMaster = sheetMaster;
var sheet = sheet;
var startRow = 1;
var data = data;
if (sheetMaster.getDataRange().getValue() == null) {
sheetMaster.getRange(2, 1, data.length, 7).setValues(data);
} else {
sheetMaster.getRange((sheetMaster.getLastRow() + 1), 1, data.length, 7).setValues(data);
}
}
将合并的工作表中的日期 6/13/2018 11:10:00
最终表格中的日期 6/13/2018 21:10:00
最佳答案
由于某些原因,我合并的工作表(我使用一些 api 得到它们)有错误的时区,所以在合并之前决定使用:
mySpreadSheet.setSpreadsheetTimeZone(Session.getScriptTimeZone());
关于javascript - 合并后 GAS 脚本更改工作表中的日期和时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50833188/