【问题标题】:Sort a spread sheet via gspread通过 gspread 对电子表格进行排序
【发布时间】:2018-06-19 23:36:19
【问题描述】:

我有一个包含姓名、日期和其他一些数字的 Google 电子表格。 我制作了一个桌面应用程序,为上述信息提供了一个不错的 UI。 使用该应用程序后,我对显示数据的顺序有些恼火。

我整天都在研究,我似乎找不到任何关于从 python 脚本中对电子表格进行排序的主题。 我所需要的只是一些函数,每当有人向其中添加内容以重新排序工作表时,我都可以调用该函数。

如果有人能帮助我,我将不胜感激。

提前致谢。

【问题讨论】:

标签: python-3.x google-sheets gspread


【解决方案1】:

GSpread 有一个.sort() 方法可以使用给定的排序顺序对工作表进行排序。以下是您可以使用它的方法(来源 - GSpread Docs):

参数:

  • specs (list) – 每列的排序顺序。每个排序顺序由一个元组表示,其中第一个元素是列索引,第二个元素是顺序本身:“asc”或“des”。
  • range (str) – 以 A1 表示法排序的范围。默认情况下对整个工作表进行排序,不包括冻结的行。

例子:

# Sort sheet A -> Z by column 'B'
wks.sort((2, 'asc'))

# Sort range A2:G8 basing on column 'G' A -> Z
# and column 'B' Z -> A
wks.sort((7, 'asc'), (2, 'des'), range='A2:G8')

【讨论】:

    【解决方案2】:

    您可以使用PyGsheets 库。它在较低级别使用工作表 API v4。

    my_worksheet.sort_range() 函数会帮助你,但它有一些特点

    1. startend 单元格中的编号以 1 开头,但 basecolumnindex 以 0 开头。
    2. 您可以通过 2 种方式传递单元格的地址:文本索引(如 "A3")或具有 2 个元素的元组(如 (1, 3))。第二种方法对我不起作用。
    3. startend 单元格限制的范围应包含在basecolumnindex 中传递的列

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 2019-11-27
      • 2016-09-11
      • 2016-09-06
      • 1970-01-01
      • 2013-04-22
      • 1970-01-01
      相关资源
      最近更新 更多