7

I am filling a Google spreadsheet from a form. The code writes some information into the spreadsheet, it always does it right, but before writing what it is supposed to, it writes [Ljava.lang.Object;@1c7aa4fc (or something like that) on the last row in the spreadsheet. Why is it appearing there?

The code for writing into the spreadsheet:

for (var p = 1; p < data.length; p++) {
    var ppopis = data[p][2]; 
    var sstav = data[p][7];
    var ukonceno_dne = data[p][9];
    var cell = spred2.getRange("H"+(p+1));
    var celll = spred2.getRange("J"+(p+1));
    if(nadpis_pole == ppopis && vlozena_hodnota == "Zrušeno") {
      cell.clear();
      cell.setValue("Zrušeno");
      if(ukonceno_dne == "" || ukonceno_dne == null){
        celll.setValue(dnesni_datum);
      }
    } else if (nadpis_pole == ppopis && vlozena_hodnota == "Vráceno") {
      cell.clear();
      cell.setValue("Vráceno");
      if(ukonceno_dne == "" || ukonceno_dne == null){
        celll.setValue(dnesni_datum);
      }
    }
  }

Thanks :)

Louskac
  • 141
  • 1
  • 1
  • 9

2 Answers2

8

App script has underlying data structure built up on java...Ljava.lang..... represents object notation in Java to indicate any object such as Array,JSON in GAS.To get actual value try toString() (or) JSON.Stringify() and check whether you have a value.

  • 1
    Thanks for the answer, even though it didnt help :/ i don´t know, probably the problem must be elsewere – Louskac Jul 24 '15 at 04:33
5

Be careful of when you do value setting. You could be passing an array ( or an object type ) by mistake, and you really want to insert a string.

For Example:

        ...
        aSheet.appendRow([["hello world"]]);

Will append "Java.Lang.Object" into the first cell of the appended row.

The correct API will be:

        ...
        aSheet.appendRow(["hello world"]); // single array
Ken Nguyen
  • 128
  • 3
  • 7
  • This resolved the issue for me. It's an easy mistake to make if you're usually writing data to Sheets using `Range.setValues(values)` because that does expect `[["hello world"]]`. – zimady Jan 17 '20 at 15:42
  • I am still getting the same result, using both the examples – Amit Sharma Jun 17 '21 at 23:18
  • Thank you very much, it was the problem on my side. I used 2D arrays for both appendRow and setValues methods in my code, which was wrong for appendRow because it appends only 1 row, therfore only a 1D array is required. – Vincent Tallon Dec 28 '22 at 09:13