1. ホーム
  2. google-api

[解決済み] gspread.exceptions.SpreadsheetNotFoundを使用する。

2022-02-16 20:04:53

質問

gspreadを使ってgoogle docにアクセスするpython(ver3)のスクリプトを書いています。

  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

テスト googleシート しかし、OfficeのExcelファイルから読み込もうとすると、エラーが発生します。

testとmtgがあるフォルダは、jsonファイルで受け取ったメールと共有されています。また、両方のファイルはそのメールと共有されていました。

試してみました。

wks = gc.open("mtg.xls").sheet1

そして

wks = gc.open("mtg.xls").<NameOfFirstSheet>

そして

wks = gc.open("mtg").<NameOfFirstSheet> 

のエラーが発生しました。

/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/gspread/client.py", 152 行目、in open raise SpreadsheetNotFound gspread.exceptions.SpreadsheetNotFound

解決方法は?

はありません。 .xls をファイル名の最後に追加すると、データは別の形式で保存されます (後で .xls ).

にコードを分割してみてください。

ss = open("MTG_Collection_5_14_16") 
ws = ss.worksheet("<NameOfFirstSheet>")

を実行し、エラーメッセージがある場合はそれを投稿してください。

Spreadsheet インスタンスには属性 sheet1 というのは、これが最初のワークシートのデフォルト名だからです。 ss.sheet1 は、その名前が何であれ、実際にはインデックス0を持つワークシートを返します。

別のワークシートにアクセスしたい場合は、以下のいずれかの方法を使用する必要があります。 ss.worsheet("<title>") または ss.get_worksheet(<index>) . ss.<NameOfFirstSheet> は動作しません。