通过 gspread 对价差 sheet 进行排序

Sort a spread sheet via gspread

我有一张 Google 散布sheet,里面全是姓名、日期和其他一些数字。 我制作了一个桌面应用程序,它为上述信息提供了一个很好的 UI。 使用该应用程序后,我对显示数据的顺序感到有些恼火。

我研究了一整天,似乎找不到关于从 python 脚本中对传播 sheet 进行排序的主题的任何内容。 我所需要的只是一些函数,每次有人向它添加内容时我都可以调用它来重新排序 sheet.

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

提前致谢。

您可以使用 PyGsheets 库。它在较低级别上使用 sheets API v4。

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

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

GSpread 有一个.sort() 方法来使用给定的排序顺序对作品sheet 进行排序。下面是如何使用它(来源 - GSpread Docs):

参数:

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

示例:

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