当前位置: 首页 > 知识库问答 >
问题:

如何从GoogleSheets行提要获取列的顺序索引?

陆宝
2023-03-14

我试图找出最健壮的方法,从行提要,而不是单元格提要来确定谷歌表格中一列的顺序位置。

例如,我有以下电子表格:

                        A          B          C         D     
              +----+-----------------------------------------+
 Header Row   | 1  |  name   |  address  |  phone  |  email  |
              +----+---------+-----------+---------+---------|
              | 2  | Jane    | 1001      | 6139023 | w@gmail |
              +----+---------+-----------+---------+---------+
              | 3  | Jon     | 1102      | 4320909 | x@gmail |
              +----+---------+-----------+---------+---------+
              | 4  | Jeff    | 1203      | 4132323 | y@gmail |
              +----+---------+-----------+---------+---------+
              | 5  | Jenny   | 1304      | 3346044 | z@gmail |
              +----+---------+-----------+---------+---------+

在我的代码中,我能够通过谷歌的工作表API成功地从工作表中获取基于行的提要。我为提要中的每一行返回的对象包括各种属性,其中大多数是标题行中的值。例如,一个单行对象看起来像:

{
    id           : 'https://spreadsheets.google.com/...'
  , 'app:edited' : '2017-02-24T23:59:56:56.520Z'
  , _links       : [ self: 'https://...', edit: 'https://...']
  , name         : 'Jane'
  , address      : '1001'
  , phone        : '6139023'
  , email        : 'w@gmail'
}

我想从基于行的提要中找到任何给定列的顺序位置,但是如何做到这一点似乎并不明显。似乎对象的属性是根据它们在标题行中的位置排序的,但是我很难找到属性引用的列号。

我想要列号的原因是我想为特定的列和行获取基于单元格的提要,但Google的API似乎要求您知道列的顺序位置。也就是说,您需要知道基于单元格的提要的最小列和最大列,以及最小行和最大行。现在,我知道我可以在Sheets UI中查看列并确定列的位置,但是如何通过编程实现呢?

总之,我正试图找到一种程序化的方式来回答一个简单的问题,如问题:

“电话列的顺序位置是什么?”

谷歌的行提要响应是否可能实现这一点?

共有1个答案

曹季同
2023-03-14

Sheetsv4中还没有此类功能。您必须手动执行基本的读取方法,解析响应并循环通过它。

  function findPosition(){
         var arrayBuffer;
         var myArr;
         var xhr = new XMLHttpRequest();
         xhr.open('GET', 'https://sheets.googleapis.com/v4/spreadsheets/'+myspreadsheetId+'/values/'+"Sheet1!"+A+":"+Z);
         xhr.setRequestHeader('Authorization', 'Bearer ' + myAccessToken);

         xhr.onload = function (oEvent) {
             arrayBuffer = xhr.response; // Note: not oReq.responseText
             console.log("arrayBuffer "+ arrayBuffer);
             myArr = JSON.parse(arrayBuffer);

              for(var i = 0; i < myArr.values.length; i++){

                 if(myArr.values[0][i] === "phone"){
                     console.log("column position is " + (i+1)); // +1 because counting starts at 0
                 }
              }
         };
         xhr.send(null);
      }

输出:

可能还有其他方法可以做到这一点。我刚刚给你看了我的版本。

 类似资料:
  • 如何在JavaFX的网格窗格中获取列索引和行索引。请参见下面的代码 当鼠标在text1上输入时,我想获取GridPane的列索引和行索引 请让我知道。

  • 在R中,当需要根据可以执行的列名称检索列索引时 有没有一种方法可以对熊猫数据帧执行相同的操作?

  • 当我单击时,我尝试获取gridpane的行/列索引。 我在JTable(java swing)中寻找像getSelectedColumn()这样的方法 我搜索了这个。gridPane.getRowIndex(节点) 但这对我没有帮助。因为它需要节点名来获取行/列索引。 我通过语法制作了一个网格组件。所以节点名称是相同的。如何获取值?我的部分代码在下面。

  • 问题内容: 是否有一种从列表(特别是数组列表,但没关系)中获取有序流的合理方法,该方法以与原始列表相反的方式流元素? 我正在寻找一种不涉及在任何东西(收集器,另一个列表,数组等)中缓冲数据的解决方案,因为它们会复制浪费的容器或使用(因为它会修改列表)。 到目前为止,我在这里看到的最干净的方法是实现自己的版本,并以相反的方式遍历列表,或者实现以反向方式进行迭代并在其上使用。 请注意,此问题与Java

  • 如何在Firebase数据库中添加对象列表? mrefuser.push().setValue(new MessageItem()); mrefuser.push().setValue(new MessageItem()); . 它是如何被添加的? Firebase将每个对象存储为HashMap中的键值对。 如何检索这些值? hashmap键的顺序是随机的。有什么方法可以得到链接的哈希图而不是哈希

  • 本文向大家介绍如何基于R中的名称获取行索引或列索引?,包括了如何基于R中的名称获取行索引或列索引?的使用技巧和注意事项,需要的朋友参考一下 我们可能更喜欢在分析期间使用行索引或列索引,而不是使用它们的数字,因此,我们可以借助grep函数获得它们。在处理大型数据集时,这很有用,因为大型数据集具有大量的行和列,因此更容易用索引而不是数字来调用它们。具体来说,需要列索引,另一方面,仅在特殊情况下(例如分