Я пытаюсь вставить формулу =INDIRECT(\"G\"&ROW()) - INDIRECT(\"J\"&ROW())
(которая вычитает J
из G
) в столбец K
, используя Google Sheets API v4.Однако вместо вставки формулы в одну ячейку я хочу вставить ее во все текущие / будущие строки в данном столбце.
Для этого я использую следующий код:
public void updateSingleColumnAndParseInput(String spreadsheetId, String range, List<List<Object>> rowData) throws IOException, GeneralSecurityException
{
final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
Sheets service = new Sheets.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT)).setApplicationName(APPLICATION_NAME).build();
ValueRange valueRange = new ValueRange();
valueRange.setRange(range);
valueRange.setValues(rowData);
valueRange.setMajorDimension("ROWS"); // "COLUMNS" //"ROWS" (both values give same result)
List<ValueRange> oList = new ArrayList<>();
oList.add(valueRange);
Update update = service.spreadsheets().values().update(spreadsheetId, range, valueRange);
update.setValueInputOption("USER_ENTERED"); // USER_ENTERED (values will be parsed)
HttpResponse values = update.buildHttpRequest().execute();
}
Я вызываю этот метод, используя этот код:
updateSingleColumnAndParseInput("xxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "K2:K", dataList);
На основании этого и этого ответа Я ожидаю, что формула будет вставлена во всетекущие и будущие строки столбца K, но после выполнения этого кода обновляется только вторая строка (K2).