Как добавить относительную формулу в лист с помощью API листа Google - PullRequest
0 голосов
/ 27 сентября 2019

Я добавляю строку в лист Google, используя API, и она работает нормально, но последний объект в строке - формула.вместо того, чтобы изменить, чтобы отобразить строку, в которой он находится, как = E3-D3, = E4-D4, он остается статичным и всегда ставит = E3-D3 в строке.Формула работает только для этой строки.

Это для Android, и я использую библиотеку Java.Я знаю, что должен быть простой способ сделать это, это так часто, но я скучаю по нему.Вот пример кода:

это объекты, которые я передаю: o6 - формула, и она неверна, но я не уверен, как исправить.

 Object o1 = result.getDate(), o2 = result.getDescription(), o3 =  
 String.valueOf(result.getDistance()), o4 = result.getStartTime(),o5 = 
 result.getEndTime(), **o6 ="=E3-D3";**





//for the values that you want to input, create a list of object lists
    List<List<Object>> values = new ArrayList<>();


    //values.add(data1);

    //todo me
    values.add(data);

    //Create the valuerange object and set its fields


    ValueRange valueRange = new ValueRange();
    valueRange.setMajorDimension("ROWS");
    valueRange.setRange(range);
    valueRange.setValues(values);

    AppendValuesResponse avResponse = null;

    try {
        avResponse = this.mService.spreadsheets().values()
                .append(mSpreadSheetId, range, valueRange)
                .setValueInputOption("USER_ENTERED")
                .execute();

Дотеперь все формулы, которые я использовал, занимали одну ячейку и суммировали целый столбец.

1 Ответ

0 голосов
/ 27 сентября 2019

Используйте относительные формулы вместо абсолютных формул с нотацией R1C1.

В Google Sheets используются две нотации позиционирования.Первая, называемая нотацией A1, использует символы латинского алфавита для обозначения столбца и целые числа для обозначения строки ячейки.Вторая, называемая нотацией R1C1, использует целые числа для представления как столбца, так и строки, а каждому предшествует соответствующий R или C, чтобы указать номер строки или столбца.Адреса A1 и R1C1 эквивалентны, как и адреса B5 и R5C2.

Так, например, если ячейка, которую вы хотите обновить, находится в столбце H, но вы хотите, чтобы она всегда отражала строкудаже если столбец отличается, используйте для этого относительные обозначения.Здесь может помочь ключевое слово формулы INDIRECT :

=E3-D3

становится:

=INDIRECT("R[0]C[-3]", FALSE)-INDIRECT("R[0]C[-4]",FALSE)

Для столбца H.

...