как я могу получить выгоду от таблицы google - PullRequest
0 голосов
/ 02 августа 2020

Мне нужно получить значение из iframe электронной таблицы Google, только одну ячейку (A2), которую я отображаю на веб-сайте.

Это значение (10%) я хочу передать на индикатор выполнения (style="width: [value from google spreadsheet]"). Возможно ли это?

Спасибо!

РЕДАКТИРОВАТЬ: Я добавил API, и он работает очень хорошо, я могу отображать значения в CMD, поэтому теперь я хочу получить это значение и передать его на свой интернет сайт. Есть предложения?

const GoogleSpreadsheet = require('google-spreadsheet');
const { promisify } = require('util');

const creds = require('./client_secret.json');

function printInfo(my_sheet){
    console.log(`Name: ${my_sheet.kontrahent}`);
}


async function accessSpreadsheet() {
    const doc = new GoogleSpreadsheet('ID');
    await promisify(doc.useServiceAccountAuth)(creds);
    const info = await promisify(doc.getInfo)();
    const sheet = info.worksheets[4];

    console.log(`Title: ${sheet.title}, Rows: ${sheet.rowCount}`);


    const rows = await promisify(sheet.getRows)({
       offset: 1 
    });

    console.log(rows[0].kontrahent); <!--I want get this value and transfer it to my div progress bar on HTML -->
  
     rows.forEach(row => {
        printInfo(row)
     });


    }

accessSpreadsheet();

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">

    <title>My test page</title>
  </head>
  <body>

<iframe src="https://docs.google.com/spreadsheets/d/e/2PACX-1vST98KwaC1TPrCA-I-t7DrtL6dcjiFt1K1300c2j57N-SbcYRA2r4akTE_QxuStIvky39bedioEx-Tr/pubhtml?gid=0&amp;single=true&amp;range=A2&amp;widget=false&amp;headers=false&amp;chrome=false" height="40px" width="226px"></iframe>
  
  
  <div class="progress">
  <div class="progress-bar progress-bar-success" style="width: 80%"></div>
</div>


</body>
</html>

1 Ответ

1 голос
/ 02 августа 2020

Взаимодействие с iFrame довольно сложно и небезопасно. Лучший способ решить эту проблему - использовать Google Sheets API .

Вот основной c раздел чтения: https://developers.google.com/sheets/api/samples/reading

Вам потребуются следующие компоненты:

  1. Ключ Google API
  2. Что-то для базового выполнения c Запрос REST
...