前提・実現したいこと
Excelのデータをpythonを介してスプレッドシートに反映させたい
発生している問題・エラーメッセージ
pythonで実行するとExcelのデータもとってこれるのですが
スプレッドシートに反映されずkeyerror:0とエラー表示があります
もう一度JSONを作り直したりしたのですが変化ありません
解決法ご存じの方、ご教授の方お願いします。
KeyError: 0
該当のソースコード
python
1import gspread 2from oauth2client.service_account import ServiceAccountCredentials 3from gspread_dataframe import get_as_dataframe, set_with_dataframe 4import pandas as pd 5import win32com.client 6import time 7import json 8 9 10 11scope = ['https://spreadsheets.google.com/feeds', 12 'https://www.googleapis.com/auth/drive'] 13credentials =ServiceAccountCredentials.from_json_keyfile_name('xxxxxxxxxxxxx.json', scope) 14gc = gspread.authorize(credentials) 15wks = gc.open('xxxxxx').worksheet("シート1") 16 17path1=xxxxxxxxx.xlsx" 18df = pd.read_excel(path1,sheet_name="id",usecols="a:x",header=2,index_col=0,skiprows=1) 19print(df) 20#セル列の最大値を求める。 21COLMAX= len(df.columns) 22#セル行の最大値を求める。※1行目はタイトルなので、+1してあげる。 23ROWMAX = len(df.index)+1 24 25#カラム名を取得する。 26c_list=list(df.columns.values) 27#列を移動するためのリスト ※必要な分だけ作成 28col =('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z') 29cc = 0 30# 更新範囲指定。A2:A100 のような文字列をつくる 31for cc in range(COLMAX): 32 data_range = col[0+cc] + "5:" + col[0+cc] + str(ROWMAX) 33 print(data_range) 34 cell_list = wks.range(data_range) 35 for (i,cell) in enumerate(cell_list): 36 cell.value = str(df[c_list[0+cc]][i]) 37 wks.update_cells(cell_list) 38 cc=cc+1 39 40set_with_dataframe(wks, df, row=5, col=2, resize=True, 41include_index=True)
補足情報(FW/ツールのバージョンなど)
取得データがかなり多いです。
回答1件
あなたの回答
tips
プレビュー