标签: gspread

如何使用python GSPREAD找到谷歌电子表格的第一个空行?

我正在努力编写代码,发现我是谷歌表的第一个空行.

我正在使用github.com/burnash/gspread的gspread包

如果有人可以帮助我会很高兴:)

我目前刚刚导入了模块并打开了工作表

scope = ['https://spreadsheets.google.com/feeds']

credentials = ServiceAccountCredentials.from_json_keyfile_name('ddddd-61d0b758772b.json', scope)

gc = gspread.authorize(credentials)

sheet = gc.open("Event Discovery")
ws = sheet.worksheet('Event Discovery')
Run Code Online (Sandbox Code Playgroud)

我想找到行1158,它是带有函数的工作表的第一个空行,这意味着每次填充旧的空行时,它将找到下一个空行. 请参阅此处

python python-2.7 gspread

11
推荐指数
2
解决办法
5962
查看次数

gspread认证投入不足

使用developers.google.com我们创建了api用户并将下载的凭据作为json文件.现在,在我的macbook上gspread身份验证在使用credentials.json时工作正常.当在aws上将相同的配置移动到linux服务器时,它给出403不足的权限错误.

Pip和python版本是一样的.

例外

gspread.v4.exceptions.APIError: {
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "insufficientPermissions",
    "message": "Insufficient Permission"
   }
  ],
  "code": 403,
  "message": "Insufficient Permission"
 }
}
Run Code Online (Sandbox Code Playgroud)

基本代码

import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ['https://spreadsheets.google.com/feeds']
creds = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
client = gspread.authorize(creds)

sheet = client.open('MySheetName').sheet1
Run Code Online (Sandbox Code Playgroud)

python google-spreadsheet-api google-drive-api gspread

11
推荐指数
1
解决办法
5201
查看次数

如何使用gspread lib从谷歌电子表格中删除/删除行.在python?

我想使用该gspread库从谷歌电子表格中删除记录.

另外,如何在google电子表格中获取行数/记录数?gspread提供.row_count(),返回总行数,包括空白行,但我只想计算有数据的行.

python google-sheets gspread

10
推荐指数
4
解决办法
6082
查看次数

ImportError:没有名为cryptography.hazmat.bindings._openssl的模块

CryptoUnavailableError:没有可用的加密库,并且从oauth2client导入加密失败。

我在链接中提到了上述错误。我能够通过重新安装pyOpenSSL和加密来解决此问题。但是现在出现了以下错误。

ImportError: No module named cryptography.hazmat.bindings._openssl
Run Code Online (Sandbox Code Playgroud)

_openssl是Unix可执行文件(_openssl.so)。以下是导入声明

from cryptography.hazmat.bindings._openssl import ffi, lib
Run Code Online (Sandbox Code Playgroud)

上面的代码在加密模块中的bindings.py中。这些都使用oauth2client链接到gspread身份验证。请帮帮我。我为此苦苦挣扎。

更新:该问题是由某些依赖项失败引起的。我无法找到依赖项失败的地方。从顶部重新安装所有库。这样解决了这个问题。

authentication google-app-engine oauth-2.0 python-2.7 gspread

10
推荐指数
4
解决办法
1万
查看次数

gspread"SpreadsheetNotFound"在某些工作簿上

我有一个包含数百个工作簿的google驱动器文件夹.我想遍历列表并更新数据.出于某种原因,gspread只能打开某些工作簿而不能打开其他工作簿.我最近才遇到这个问题.

这不是访问问题,因为所有内容都在同一个文件夹中.

我得到的raise SpreadsheetNotFound时候open_by_key(key).但是当我拿到密钥并将其粘贴到URL中时,工作表会打开.这意味着它不是关键.

这里发生了什么?我很惊讶其他人没有遇到这个错误.

我是否限制了我可以拥有的Google表格数量?我有大约2千.

更新:我发现如果我进入工作簿并四处寻找,那么表单就会被识别出来了!! !! 这是什么意思?如果工作表最近没有活动,它无法识别工作表???

此外,如果我尝试使用Google App Script SpreadsheetApp.openById,则会识别密钥!因此,工作表在那里,我无法打开它gspread.我已经使用Google脚本在识别之前首先在工作表上写入内容gspread.

我可以打开使用的纸张,pygsheets但因为它是新的,所以马车,我不能使用它.这看起来像个APIv4问题?有些床单不能用APIv3

更新:这是另一个观察.使用API​​v4打开工作簿后,您无法再使用V3打开它.

python google-sheets gspread

10
推荐指数
1
解决办法
1030
查看次数

GSpread ImportError:没有名为oauth2client.service_account的模块

好的我正在跟随"成为技术营销人员"课程,我正在尝试学习如何使用GSpread管理Google Spreadsheets.我已经按照http://gspread.readthedocs.io/en/latest/oauth2.html上的文档进行了操作.我按照上面第二个URL中的步骤操作了一个包含以下代码的文档:

import gspread
from oauth2client.service_account import ServiceAccountCredentials

scope = ['https://spreadsheets.google.com/feeds']

credentials = ServiceAccountCredentials.from_json_keyfile_name('DFS Google Sheets Data Imports-7205de852ff7.json', scope)

gc = gspread.authorize(credentials)

wks = gc.open("Authority Scraper").sheet1
wks.update_cell(1,2,"Hello World!")
Run Code Online (Sandbox Code Playgroud)

从那里我得到了终端中的错误:来自oauth2client.service_account import ServiceAccountCredentials ImportError:没有名为oauth2client.service_account的模块

终端错误打印输出

有人请帮帮我.其他没有名为oath2client.service_account的模块的答案对我不起作用.谢谢!

python google-api-python-client gspread google-app-engine-python

9
推荐指数
2
解决办法
1万
查看次数

Google Spreadsheet Python API或gspread是否允许图片或富文本?

是否可以使用gspreadGoogle Spreadsheets或其他基于Python的访问权限将图像插入电子表格?

此外,是否可以制作丰富的文本单元格(例如,粗体,斜体,不同的字体大小,颜色等)?

python google-sheets gspread

8
推荐指数
1
解决办法
491
查看次数

如何使用python从Google电子表格中获取工作表ID?

我想确定一种方法,以便在Google电子表格工作簿中的每个工作表的URL中获取工作表ID.例如,对于"Sheet2的"工作表ID 此工作簿是"1244369280",因为它的网址是https://docs.google.com/spreadsheets/d/1yd8qTYjRns4_OT8PbsZzH0zajvzguKS79dq6j--hnTs/edit#gid=1244369280

我发现的一种方法是提取Google电子表格的XML,因为根据这个问题,获取工作表ID的唯一方法是流式传输工作表的XML,但示例是在Javascript中,我需要在Python中执行此操作

这是我想在Python中执行的Javascript代码:

  Dim worksheetFeed As WorksheetFeed
  Dim query As WorksheetQuery
  Dim worksheet As WorksheetEntry
  Dim output As New MemoryStream
  Dim xml As String
  Dim gid As String = String.Empty

  Try
    _service = New Spreadsheets.SpreadsheetsService("ServiceName")
    _service.setUserCredentials(UserId, Password)
    query = New WorksheetQuery(feedUrl)
    worksheetFeed = _service.Query(query)
    worksheet = worksheetFeed.Entries(0)

    ' Save worksheet feed to memory stream so we can 
    ' get the xml returned from the feed url and look for
    ' the gid.  Gid allows us …
Run Code Online (Sandbox Code Playgroud)

python xml gdata gspread

8
推荐指数
1
解决办法
3108
查看次数

gspread.exceptions.SpreadsheetNotFound

我正在编写一个 python(ver 3) 脚本来使用 gspread 访问谷歌文档。

  1)  import gspread
  2)  from oauth2client.service_account import ServiceAccountCredentials
  3)  scope = ['https://spreadsheets.google.com/feeds']
  4)  credentials = ServiceAccountCredentials.from_json_keyfile_name(r'/path/to/jason/file/xxxxxx.json',scope)
  5)  gc = gspread.authorize(credentials)
  6)  wks = gc.open("test").sheet1
Run Code Online (Sandbox Code Playgroud)

测试是一个谷歌表,它似乎被打开并且阅读正常,但是如果我尝试从 Office excel 文件中读取它会给我错误。这是它们的外观:在此处输入图片说明

test 和 mtg 所在的文件夹与我在 json 文件中收到的电子邮件共享。这两个文件也与该电子邮件共享。

尝试:

wks = gc.open("mtg.xls").sheet1
Run Code Online (Sandbox Code Playgroud)

wks = gc.open("mtg.xls").<NameOfFirstSheet>
Run Code Online (Sandbox Code Playgroud)

wks = gc.open("mtg").<NameOfFirstSheet> 
Run Code Online (Sandbox Code Playgroud)

错误:

/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/gspread/client.py”,第 152 行,在 open raise SpreadsheetNotFound gspread.exceptions.SpreadsheetNotFound

google-api gspread

8
推荐指数
3
解决办法
1万
查看次数

将pandas Data Frame附加到Google电子表格

案例:我的脚本返回一个数据框,需要将其作为新的数据行附加到现有的谷歌电子表格.截至目前,我通过gspread将数据框作为多个单行添加.

我的代码:

import gspread
import pandas as pd
df = pd.DataFrame()

# After some processing a non-empty data frame has been created.

output_conn = gc.open("SheetName").worksheet("xyz")

# Here 'SheetName' is google spreadsheet and 'xyz' is sheet in the workbook

for i, row in df.iterrows():
    output_conn.append_row(row)
Run Code Online (Sandbox Code Playgroud)

有没有办法追加整个数据框而不是多个单行?

python pandas gspread

8
推荐指数
2
解决办法
1万
查看次数