Dieses Blatt sieht so aus:
Das Blatt sieht so aus dies:
Aber wann immer ich versuche, auf diese Zellen zuzugreifen, erhalte ich stattdessen ein Datum zurück:
Ergebnis des Debuglogs
Ich bin sicher, dass ich die richtige Spalte eingestellt habe und Zeile, weil mein vorheriges Protokoll so sagt:
Spalten- und Zeilennummern bevor es an die Funktion zum Abrufen des Zellwerts gesendet wird
TL;DR: Daher vermute ich, dass etwas mit der Funktion, die ich spätestens aufrufe, also „getSheetValues“, nicht stimmt. Es sollte etwas anderes sein, oder? Aber ich habe keine Ahnung, warum ich die Daten zurückerhalte.
Dies ist mein Hauptcode, den ich aufrufe:
Code: Select all
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);
Code: Select all
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
}