跳转到主要内容

使用Pandas数据框操作Google Sheets

项目描述

pgsheets是一个用于与Google Sheets交互的Python3库。它使用Pandas数据框,这是一个非常适合数据分析和表示电子表格的二维结构。

此库可以轻松与现有数据集成,以展示仪表板、更新文档或提供快速数据分析。

功能

  • 获取/设置Google电子表格的全部或部分内容

  • 使用Google API管理授权

  • 检索/设置公式或值

  • 调整电子表格大小

  • 为Google Sheets提供丰富的Pandas数据工具

安装

只需使用pip进行安装

$ pip install pgsheets

用法

设置Google项目

如果您尚未创建,您需要在Google开发者控制台中创建一个项目,并获取您的客户端ID和客户端密钥。

  1. 导航到Google开发者控制台

  2. 创建一个项目(您将被重定向到项目页面)

  3. 单击APIs & Auth

  4. 单击Consent screen并设置产品名称

  5. 现在单击Credentials

  6. 单击Create new Client ID并选择Installed Application > Other

获取令牌

使用您的Google 客户端ID客户端密钥,我们可以获取一个授权URL以呈现给用户

>>> from pgsheets import Token, Client
>>> c = Client(my_client_id, my_client_secret)
>>> c.getOauthUrl()
'https://#/o/oauth2/auth?...'

通过访问此URL,谷歌用户可以同意您的应用程序查看和修改他们的谷歌表格。同意后,将返回一个访问码,我们使用它来获取令牌

>>> my_token = c.getRefreshToken(access_code)
>>> type(my_token)
str
>>> t = Token(c, my_token)

您需要保存my_token以供将来使用。

编辑电子表格

创建一个电子表格(并确保保存它)并复制URL。现在我们可以访问电子表格

>>> import pandas as pd
>>> from pgsheets import Spreadsheet
>>> s = Spreadsheet(t, my_url)
>>> s
<Spreadsheet title='test' key='.....'>
>>> s.getTitle()
'test'
>>> s.getWorksheets()
[<Worksheet title='Sheet1' sheet_key='.....'>]
>>> w = s.getWorksheet('Sheet1')
>>> w.getTitle()
'Sheet1'
>>> w.setDataFrame(
        pd.DataFrame([['money', 'interest', 'years', 'result'],
                      ['1000', '0.015', '3', '=A2 * (1+B2) ^ C2']]),
        copy_columns=False,
        copy_index=False,
        resize=True)
>>> w.asDataFrame()
          interest years                                  result
    money
    1000     0.015     3  =R[0]C[-3] * (1+R[0]C[-2]) ^ R[0]C[-1]
>>> w.asDataFrame(values=True)
          interest years       result
    money
    1000     0.015     3  1045.678375
>>> df = w.asDataFrame()
>>> df['checked'] = "TRUE"
>>> w.setDataFrame(df)
>>> w.asDataFrame()
          interest years                                  result checked
    money
    1000     0.015     3  =R[0]C[-3] * (1+R[0]C[-2]) ^ R[0]C[-1]    TRUE

限制

此库仅在Python3.4中进行了测试。它几乎肯定不会在Python2中工作。

目前,使用pgsheets无法完成以下操作

  • 创建电子表格

  • 将工作簿添加到电子表格中

  • 重命名电子表格或工作簿

  • 防止某些值发生微小变化,例如,“True”变为“TRUE”

最后,谷歌API有一些限制。理想情况下,此代码不应导致工作表发生任何更改

>>> w.setDataFrame(w.asDataFrame())

不幸的是,存在一些边缘情况。例如,以下公式

={1, 2}

跨越两个单元格显示

1

2

没有明确的方法知道右侧的单元格不是用户输入的“2”。因此,上述代码会导致以下输出

={1, 2}

2

显示如下

#REF!

2

项目详情


下载文件

下载适用于您平台的项目文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

pgsheets-0.0.1.tar.gz (10.7 kB 查看散列)

上传时间 源代码

构建分发

pgsheets-0.0.1-py3-none-any.whl (11.4 kB 查看散列)

上传时间 Python 3

由以下组织支持