Wie bringe ich Google Script dazu, den Anzeigewert einer Tabellenzelle zu lesen? Stattdessen wird immer wieder ein zufälJavaScript

Javascript-Forum
Guest
 Wie bringe ich Google Script dazu, den Anzeigewert einer Tabellenzelle zu lesen? Stattdessen wird immer wieder ein zufäl

Post by Guest »

Ich schreibe ein Skript, das den Wert der Zelle abhängig von der Uhrzeit und dem Tag liest.
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);
Und dies ist der Code zum Extrahieren von Zellanzeigewerten, der im obigen Code aufgerufen wird:

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

}

Ich habe erwartet, dass der Wert in der angegebenen Zelle zurückgegeben wird. Aber ich bekomme stattdessen ein Standarddatum für das Blatt zurückgegeben. Ich habe in den letzten Tagen versucht, verschiedene Antworten und verschiedene Funktionen durchzusehen, konnte aber kein richtiges Ergebnis erzielen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post