У меня есть скрипт, который преобразует и файл Excel в Google Sheet. Однако недавно созданный Google Sheet по умолчанию использует часовой пояс Pacifi c. Мы уже настроили нашу компанию на использование восточного часового пояса в Google Admin. У меня также есть локальный компьютер, на котором выполняется сценарий, настроенный на восточный часовой пояс, и пользователь также настроен на восточный часовой пояс. Проект сценария также настроен на восточный часовой пояс. Если я захожу в Службы Google и создаю лист с нуля, по умолчанию будет выбран восточный часовой пояс. Но когда скрипт создает новый лист, он всегда по умолчанию использует часовой пояс Pacifi c. Поскольку кажется, что нет способа установить часовой пояс с помощью функции скрипта, есть ли способ установить его по умолчанию для восточного часового пояса? Обратите внимание, что здесь, в восточном часовом поясе, у нас тупое летнее время. Таким образом, он изменяется между -4 и -5, что является такой болью!
Моя причина в том, что после того, как я преобразовал Excel в Google Sheet, мне нужно импортировать записи в другой лист импорта. Импортированные данные имеют даты и время, которые продолжают отображаться после или во время импорта. Поскольку я импортирую, используя функцию getRange.getValues, она всегда выполняет новую функцию Date (). Я также попробовал функцию Utilities.format. Но я не знаю, могу ли я быть уверен, что часовой пояс останется прежним. И поскольку я не могу прочитать, какой часовой пояс имеет созданный лист, он становится азартной игрой.
Буду признателен за любую помощь, которая может быть предложена в виде исправлений сценариев. Для меня нереально каждый раз вводить go и изменять часовой пояс внутри самого листа.
Спасибо за любую помощь!
Дуг
Код преобразования:
function convertExceltoGoogleSheet(fileName, newFileName) {
try {
var fileName = fileName || "microsoft-excel.xlsx";
var excelFile = DriveApp.getFilesByName(fileName).next();
var fileId = excelFile.getId();
var folderId = Drive.Files.get(fileId).parents[0].id;
var blob = excelFile.getBlob();
//If no newFileName passed, create one
if (newFileName.trim() == '') {
//Generate formatted filename
var dateInfo = getDateInfo(-20);
var mo = dateInfo[2].toString();
if (mo.length < 2) {
var mo = "0" + mo;
}
var newFileName = dateInfo[0].toString() + "-" + mo + "-" + filename;
}
var resource = {
//title: excelFile.getName().replace(/.xlsx?/, ""), //use original filename
title: newFileName, //Use formatted filename from above
key: fileId,
parents: [{"id": folderId}]
};
var newFile = Drive.Files.insert(resource, blob, {
convert: true
});
return newFile.id;
} catch (f) {
Logger.log(f.toString());
}
}