通过gspread对电子表格进行排序

时间:2018-06-19 23:36:19

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

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

我整天都在研究,似乎无法从python脚本中对电子表格进行排序。 我需要的是每次有人添加一些东西以重新排序工作表时都可以调用的函数。

如果有人可以帮助我,我将非常感激。

谢谢。

2 个答案:

答案 0 :(得分:0)

您可以使用PyGsheets lib。它在较低级别上使用表格API v4。

my_worksheet.sort_range()功能会为您提供帮助,但有一些特殊之处

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

答案 1 :(得分:0)

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')