我如何从Google电子表格中获取价值

时间:2020-08-02 16:02:02

标签: node.js angularjs angular google-sheets

我需要从Google电子表格iframe中获得价值,我只在网站上显示一个单元格(A2)。

我想转移到进度栏(style="width: [value from google spreadsheet]")的这个值(10%)。 有可能吗?

谢谢!

编辑: 我已经添加了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 个答案:

答案 0 :(得分:1)

iFrame交互有点复杂且不安全。解决此问题的更好方法是使用Google Sheets API

这是基础阅读部分:https://developers.google.com/sheets/api/samples/reading

您将需要以下组件:

  1. Google API密钥
  2. 可以执行基本的REST请求