到google sheets api的pythonic接口,实际上在2019年7月就可以工作了。

EZSheets的Python项目详细描述


电子表格

到google sheets api的pythonic接口,实际上在2019年6月就可以工作了。

安装

要使用pip安装,请运行:

pip install ezsheets

快速入门指南

首先,转到https://developers.google.com/sheets/api/quickstart/python并单击“启用google sheets api”按钮。你需要登录你的谷歌账户。(我建议使用专门为python脚本创建的单独google帐户。)然后下载credentials.json文件,将其重命名为credentials-sheets.json,并将其与python脚本放在同一文件夹中。

接下来,使用pip(或pip3在MacOS和Linux上为Python3安装以下模块):

pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib

接下来安装ezsheets模块:

pip install --upgrade ezsheets

第一次调用ezsheets函数时,模块将使用credentials-sheets.json文件生成token-sheets.pickle和token-drive.pickle文件。不要共享这些文件:对待这些文件就像对待你的谷歌帐户密码一样。

使用电子表格的url:

创建Spreadsheet对象
>>> import ezsheets
>>> s = ezsheets.Spreadsheet('https://docs.google.com/spreadsheets/d/16RWH9XBBwd8pRYZDSo9EontzdVPqxdGnwM5MnP6T48c/edit#gid=0')

您也可以只提供url的电子表格id部分:

>>> s = ezsheets.Spreadsheet('16RWH9XBBwd8pRYZDSo9EontzdVPqxdGnwM5MnP6T48c')

Spreadsheet对象有一个titlespreadsheetId属性:

>>> s.title
'Class Data Example'
>>> s.title = 'Class Data'
>>> s.title
'Class Data'
>>> s.spreadsheetId
'16RWH9XBBwd8pRYZDSo9EontzdVPqxdGnwM5MnP6T48c'

Spreadsheet对象还有一个sheets属性,它是Sheet对象的列表:

>>> s.sheets
(Sheet(title='Sheet3', sheetId=314007586, rowCount=1000, columnCount=26), Sheet(title='Foobar', sheetId=2075929783, rowCount=1000, columnCount=27), Sheet(title='Class Data', sheetId=0, rowCount=101, columnCount=22, frozenRowCount=1), Sheet(title='Sheet2', sheetId=880141843, rowCount=1000, columnCount=26))
>>> s.sheetTitles
('Sheet3', 'Foobar', 'Class Data', 'Sheet2')
>>> sh = s.sheets[0]

然后,您可以查看工作表的大小和标题:

>>> sh = s.sheets[0]
>>> sh.title
'Sheet3'
>>> sh.title = 'My New Title'
>>> sh.title
'My New Title'
>>> sh.columnCount, sh.rowCount
(26, 1000)

您还可以获取或更新特定单元格、行或列中的数据:

>>> sh.get(1,1)
'fads'
>>> sh.update(1, 1, 'New cell value')
>>> sh.getRow(1)
['New cell value', 'fe', 'fa', 'ewafwe', 'f', 'ew', 'ewafawef', 'ewf', 'ewf', 'ew', 'fewa', 'f', 'ew', '', '', '', '', '', '', 'ewf', 'ewafewaf', 'ewfewf', '', 'f', 'ewfewafewaf', 'ewfew']
>>> sh.updateRow(['cell A', 'cell B', 'cell C'])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: updateRow() missing 1 required positional argument: 'values'
>>> sh.updateRow(1, ['cell A', 'cell B', 'cell C'])
>>> sh.getColumn(1)
['cell A']
>>> sh.update(1, 2, 'another value')
>>> sh.getColumn(1)
['cell A', 'another value']
>>> sh.updateAll([['CELL A', 'ANOTHER VALUE', 'CELL C'], ['ANOTHER VALUE']])
>>> sh.getAll()
[['CELL A', 'ANOTHER VALUE', 'CELL C'], ['ANOTHER VALUE']]

如果google工作表上的数据发生更改,您可以刷新数据的本地副本:

>>> sh.refresh() # Updates the Sheet object.
>>> s.refresh()  # Updates the Spreadsheet object and all its sheets.

您可以重新排列电子表格中工作表的顺序:

>>> s.sheetTitles
('My New Title', 'Foobar', 'Class Data', 'Sheet2')
>>> s.sheets[0].index
0
>>> s.sheets[0].index = 2
>>> s.sheetTitles
('Foobar', 'Class Data', 'My New Title', 'Sheet2')
>>> s.sheets[2].index = 0
>>> s.sheetTitles
('My New Title', 'Foobar', 'Class Data', 'Sheet2')

你也可以重新着色标签。(当前无法将选项卡颜色重置回“无颜色”。

贡献

如果您想为ezsheets做贡献,请查看https://github.com/asweigart/ezsheets

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我可以在J2EE1.4中使用JAXR吗   YouTube数据API超出了未经验证的java每日使用限制   java RED5 RTMPConnManager未设置applicationContext局部变量。这会导致NullPointerException   java多部分/formdata,加载图像(安卓)   java Struts 2<s:select>填充表单中的其他字段   java Eclipse在迁移后不会将邮件属性传递给Spring Boot   java如何检查请求的TLS版本   java如何从包中导入相同的类   如何在java中将BLOB字符串转换为人类可读的格式字符串   java使用Play映射特定的文件路径!框架   java Eclipse重构   在子字符串上使用“预定义字符类”的java   java如何在SeleniumWebDriver中选择li中的锚定标记?   jspjava。木卫一。FileNotFoundException:系统找不到指定的路径   java Hi,在启动cmd\design javafx\cmd eclipse时,我的文件不是删除的,也不是复制的   java Selenium Web驱动程序异常“找不到:taskkill的可执行文件”   java如何获得数组的迭代器?