Этот лист выглядит так:
лист выглядит так это:
Но всякий раз, когда я пытаюсь получить доступ к этим ячейкам, вместо этого мне возвращается дата:
результат журнала отладки
Я уверен, что устанавливаю правильный столбец и строка, потому что в моем предыдущем журнале так сказано:
номера столбцов и строк перед отправкой в функцию получения значения ячейки
TL;DR: поэтому я подозреваю, что что-то не так с функцией, которую я вызываю самой последней, то есть «getSheetValues». Это должно быть что-то другое, не так ли? Но я понятия не имею, почему мне возвращаются даты.
Это мой основной код, который я вызываю:
Код: Выделить всё
function myFunction() {
// check hour
var d = new Date();
var godz = d.getHours();
// add 1 hour in case of hour being a little to early.
// script runs at exact shift start times, so due to how getHours work, it could be 1 hour too early.
// var godz = 17;
console.log('Current Hour:');
console.log(godz);
var currentShift = 0;
console.log('CurrentShiftStart:');
console.log(currentShift);
// set shift number based on hour
if (godz === 9 || godz === 10) {
currentShift = 1;
console.log('yes1');
} else if (godz === 11 || godz === 12) {
currentShift = 2;
console.log('yes2');
} else if (godz === 13 || godz === 14) {
currentShift = 3;
console.log('yes3');
} else if (godz === 15 || godz === 16) {
currentShift = 4;
console.log('yes4');
}
console.log('CurrentShiftFinal:');
console.log(currentShift)
// collect data using extractor
var values = dataCollector(14, currentShift);
Logger.log('Extracted values from the sheet:')
Logger.log(values);
Код: Выделить всё
const sheet_id = 15
function dataCollector(sheet_id, shift_number) {
//access the workbook
const wb = SpreadsheetApp.openById('1ZJGMd7_CeuA4lIPceHK5Q8sd4GNpQvAmp10Tty7BuWs');
Logger.log('Loaded Spreadsheet name is:')
Logger.log(wb.getName());
// access all the sheets in the workboook
var sheets = wb.getSheets();
var sheetName = sheets[sheet_id].getSheetName();
// Use the direct name of the sheet in the workbook.
var dataSheet = wb.getSheetByName('Queue Manager Schedule');
// loop through the sheets
// for(i in sheets) {
// // conditional to evaluate the sheet ids
// if(sheets[i].getSheetId() == sheet_id) {
// // collect the sheet name
// var sheetName = sheets[i].getSheetName();
// }
// }
// access the sheets with the data
// var dataSheet = wb.getSheetByName(sheetName);
// set the proper row depending on which shift during the day it is.
// rows are 4-7, so 1st shift is going to be row number 4.
// therefore, add number 3 to the shift_number given in the function
var shift_number = shift_number + 3;
console.log('Shift Number and thus row number declared:');
console.log(shift_number);
// set the proper column depending on what day it is.
// Monday starts on columm number 2 ("B")
// get which day it is, and add number 1 to get proper column
var today = new Date();
var dayOfWeek = today.getDay();
var dayOfWeek = dayOfWeek + 1;
console.log('Day of the week and thus column declared:')
console.log(dayOfWeek);
// extract of our data
Logger.log('Sheetname:')
Logger.log(sheetName)
Logger.log('DataSheet:')
Logger.log(dataSheet);
//
// convert shift number into an integer...
var newshift = Number(shift_number);
var valuez = wb.getSheetValues(shift_number, dayOfWeek, 1, 1);
Logger.log('Cell value:')
Logger.log(JSON.stringify(valuez))
return valuez
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... l-it-keeps
Мобильная версия