Хранение данных формы реакции на листе Google - PullRequest
0 голосов
/ 26 марта 2020

Я хочу сохранить свои данные формы на листе Google, но каждый раз, когда я нажимаю кнопку, это обновление только одной строки, я хочу, чтобы при каждом щелчке по кнопке она сохранялась в новой строке. Кроме того, я хочу сохранить в строке не столбец, но сейчас это значение магазина в столбце. Я подключил Google API и аутентификацию. Если есть простой способ добавить данные в таблицу Google, пожалуйста, дайте мне знать. Я не нашел никакого решения прямо сейчас.

import React, {Component} from 'react';
const Test = () => {
const SHEET_ID = '1iQeoKog_yKXAh4vcmdxqnnS-DLbC3Pgdn5FaT_4lM-E';
const ACCESS_TOKEN = 'ya29.a0Adw1xeV7QH5E12O-pNxPkSfWK4_J-y5QtVxldMD7kjmEL5-hlTsnI792Zaa5uVapN5hlebN4B8S1xSfsWu82VYrh3NOnXCK4a9Lxvr-PfRx_aCsAXzBmb2Z-MrJnWyUPIo01yUavSrpiD9u4LkXiioG1QWKj9FesIhU';

   const updateSheetValues = () => {
    fetch(`https://sheets.googleapis.com/v4/spreadsheets/${SHEET_ID}:batchUpdate`, {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        //update this token with yours. 
        Authorization: `Bearer ${ACCESS_TOKEN}`,
      },
      body: JSON.stringify({

        "requests": [
          {
            "updateCells": {
              "range": {
                "startRowIndex": 0,
                "startColumnIndex": 0,
                "endColumnIndex": 1,
                "endRowIndex": 3,
                "sheetId": 0
              },
              " ": [
                {
                  "values": [
                    {
                      "userEnteredValue": {
                        "stringValue": "Adnan1"
                      }
                    }
                  ]
                },
                {
                  "values": [
                    {
                      "userEnteredValue": {
                        "stringValue": "Adnan2"
                      }
                    }
                  ]
                },
                {
                  "values": [
                    {
                      "userEnteredValue": {
                        "stringValue": "Adnan3"
                      }
                    }
                  ]
                }
              ],
              "fields": "*"
            }
          }
        ]

      })
    })
  }

    return ( 
      <div className = "App" >
        hello world 
        <button onClick={updateSheetValues}>Update A1</button>
      </div>
    );

}

export default Test;

1 Ответ

0 голосов
/ 26 марта 2020

Если вы хотите добавить строку вместо обновления существующей, вам нужно использовать метод spreadsheets.values.append

Таким образом, чтобы вместо этого передать значения в виде строки для столбца формат должен быть:

"values": [
        [
          "Adnan1",
          "Adnan2",
          "Adnan3"
        ]

URL:

https://sheets.googleapis.com/v4/spreadsheets/${SHEET_ID}/values/{RANGE}:append

Пример запроса:

{
  "range": "A15",
  "values": [
    [
      "Adnan1",
      "Adnan2",
      "Adnan3"
    ]
  ]
}

Таким образом, range обозначает первую ячейку из где первая пустая строка будет искать вниз (в диапазоне выборки установлено значение A15, но в вашем случае вы, вероятно, захотите установить диапазон на A1. Имейте в виду, что {диапазон} в URL должен быть таким же как в запросе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...