如何使用单元格值

时间:2017-10-12 11:55:59

标签: java google-sheets google-spreadsheet-api google-sheets-api google-sheets-query

我正在使用谷歌电子表格API v4 for java。

我的电子表格看起来像这样 -

    User    Message       Time
--------------------------------

    User1    My Message    10:30
    User2    User2 msg     3:40
    User3    User3 msg     1:30
    User2    User2 msg       
    User4    User4 msg     4:00 

我想找到用户'User2'和时间库(空值)的行索引。 之后,我想使用此行索引在该行中添加时间值。 是否可以在不知道范围或索引的情况下逐行搜索?

在上面的示例中,它应该仅返回第二行索引,因为它与条件匹配(User ='User2'和Time ='')。 或者甚至更好,是否有任何查找和替换API,它将找到行标准(User ='User2'和Time ='')并将时间值从''替换为'3:30'?

我浏览了谷歌文档,但根据我的需要找不到。 感谢。

修改

我找到了一个公式来查找需要更新的单元格地址。

=ADDRESS(MATCH("User2",A1:A4000),3)

例如,在此问题中使用此公式将返回'$ C $ 4'地址,这是预期的。我通过手动评估电子表格中的公式对此进行了测试。有没有办法使用Google电子表格API V4使用Java代码评估此公式?

1 个答案:

答案 0 :(得分:1)

我认为你想要使用查找函数的组合: https://support.google.com/docs/topic/3105472?hl=en&ref_topic=3046366

特别是,MATCH允许您获取某个范围内所需值的位置偏移量,因此您可以获得包含值“User2”的column1中单元格的偏移量,而OFFSET可以让您检查单元格中的值找到的单元格右侧的2列,它将为您提供与时间列进行比较的值。从那以后你也会检查被检查事物的细胞坐标,然后你可以分配一个新的值。这些查找函数允许您查找其余部分所需的范围或索引。

这只是为您提供了一种方便的方法,可以为您的其他函数预先计算某些值,以便您的脚本可以直接访问工作表内置函数输出的值。它可以节省您的工作表脚本在值的范围内排序,但逻辑是相同的。 1)获取Column1的范围 2)Column1的值搜索范围'User2' 3)如果匹配,检查偏移量(0,2)以获得右侧的单元格引用2个空格并询问其单元格引用。 4)如果该引用为空,请为其分配时间戳。

如果你想要这个代码,那么我需要花费更长的时间来组合。