質問するログイン新規登録
Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

1回答

947閲覧

Googleスプレッドシートを操作したい

webaaaaaa

総合スコア0

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

1クリップ

投稿2021/01/16 14:49

0

1

https://youtu.be/fFSGPciIkfI (キノコード YouTube)
こちらの動画と同じようにgoogleスプレッドシートを操作したいです。
スプレッドシートの操作権を取得するコードを書いたところでエラーになってしましました。
エラーコードの意味と解決方法が分かる方、スプレッドシートに詳しい方、ご回答よろしくお願いいたします。

該当箇所のコード

gs = gspread.authorize(credentials ) SPREADSHEET_KEY = '1gHd3hrud4XujJlnKwG3RZSvFIixbV8NoX_hmAu0pffw' worksheet = gs.open_by_key(SPREADSHEET_KEY).worksheet("発注管理表")

エラーコード

--------------------------------------------------------------------------- StopIteration Traceback (most recent call last) ~/anaconda3/lib/python3.7/site-packages/gspread/models.py in worksheet(self, title) 316 lambda x: x['properties']['title'] == title, --> 317 sheet_data['sheets'], 318 ) ~/anaconda3/lib/python3.7/site-packages/gspread/utils.py in finditem(func, seq) 96 """ ---> 97 return next((item for item in seq if func(item))) 98 StopIteration: During handling of the above exception, another exception occurred: WorksheetNotFound Traceback (most recent call last) <ipython-input-15-22d40aa46b24> in <module> 2 3 SPREADSHEET_KEY = '1gHd3hrud4XujJlnKwG3RZSvFIixbV8NoX_hmAu0pffw' ----> 4 worksheet = gs.open_by_key(SPREADSHEET_KEY).worksheet("発注管理表") ~/anaconda3/lib/python3.7/site-packages/gspread/models.py in worksheet(self, title) 319 return Worksheet(self, item['properties']) 320 except (StopIteration, KeyError): --> 321 raise WorksheetNotFound(title) 322 323 def add_worksheet(self, title, rows, cols, index=None): WorksheetNotFound: 発注管理表

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

以下の内容から、該当するスプレッドシート内の「発注管理表」シートが無いというエラーです。
アクセス先のスプレッドシート内に「発注管理表」という名前のシートを作成(もしくは名称変更)して、再度実行してみてください。

Terminal

1WorksheetNotFound Traceback (most recent call last) 2<ipython-input-15-22d40aa46b24> in <module> 3 4(...中略...) 5 6WorksheetNotFound: 発注管理表

投稿2021/01/16 22:58

_whitecat_22

総合スコア1305

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

webaaaaaa

2021/01/18 04:45

ご回答ありがとうございます。 発注管理表という名前のシートは確かにあるのですが、エラーが出てしまいます。 他に問題点などはあるでしょうか? 教えていただければ幸いです。
_whitecat_22

2021/01/18 05:08

もし考えられるとすれば、①SpreadSheet_Keyが異なる、②秘密鍵が異なる、③ファイルの共有設定をしていない...くらいでしょうか。 なお、以下は私が組んだプログラムで使ったライブラリや設定部分の抜粋です。 ご参考になれば。 == # グーグルスプレッドシートを操作する為にimport import gspread # グーグルスプレッドシートの認証情報設定の為にimport from oauth2client.service_account import ServiceAccountCredentials # 2つのAPIを記述しないとリフレッシュトークンを3600秒毎に発行し続けなければならない scope = ['https://spreadsheets.google.com/feeds','https://googleapis.com/auth/drive'] # 認証情報設定 # ダウンロードしたjsonファイル名をクレデンシャル変数に設定(秘密鍵、Pythonファイルから読み込みしやすい位置に置く) credentials = ServiceAccountCredentials.from_json_keyfile_name("**************************************.json", scope) # 共有設定したスプレッドシートキーを格納 SPREADSHEET_KEY = '********************************' # 制限 # (1) ユーザーごとに100秒あたり100件のリクエスト # (2) 1秒あたり10件まで # OAuth2の資格情報を使用してGoogleAPIにログイン gc = gspread.authorize(credentials) # 共有設定したスプレッドシートのシート1を開く workbook = gc.open_by_key(SPREADSHEET_KEY)
webaaaaaa

2021/01/18 05:25

ありがとうございます! プログラムを使わせて頂きましたが、エラーが出ることはありませんでした。 ただ、機能しているか確かめるため、print(workbook.acell("F2").value)こちらのコードでF2の情報を取得しようとしたところ、'Spreadsheet' object has no attribute 'acell'というエラーが出てしまいました、、 訳すと「属性「acell」がありません」ですがこれはどういうことでしょうか? 何度も質問してしまい申し訳ないです。
_whitecat_22

2021/01/18 06:02 編集

シートの読み方を間違えているのではないかと。 worksheet = gs.open_by_key(SPREADSHEET_KEY).worksheet("発注管理表") のままで読めませんか? ↓ ワークシートのセルを読むので、worksheet と指定すべきでは? 【誤】print(workbook.acell("F2").value) 【正】print(worksheet.acell("F2").value)
webaaaaaa

2021/01/19 05:11

試してみましたが、やはりダメでした、、 コードやAPIなどの設定には誤りはないのでスプレッドシートに問題があると思いますが、 分からないです、完全に詰まってしまいました。、
_whitecat_22

2021/01/19 05:26

ダメですか? ワークシートそのものは読めてますか? API keyを取り直してみたり、ワークシート(ワークブック)を一度削除⇒新たに作り直したりしてもダメでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問