前提・実現したいこと
エクセルデータをpandas Dataframeを使って、スプレッドシートに反映させようとしています。
ただデータ量が多いので、下記の記事を参考にさせていただきました。
https://teratail.com/questions/137584
17カラム420行反映させたいのですが、最高16カラムしか反映できません。
17カラムすべて取得したいです。
発生している問題
str(df[c_list[cc]][i])の部分でIndexError: list index out of rangeがでます。
うまくread_excelでD:Tの範囲読み込めていないと思ってます。
python
1df = pd.read_excel(path1, usecols="D:T", index_col=0) 2print(df) 3 4#セル列の最大値を求める。 5COLMAX= len(df.columns)+3 6#セル行の最大値を求める。※1行目はタイトルなので、+1してあげる。 7ROWMAX = len(df.index)+2 8 9#カラム名を取得する。 10c_list=list(df.columns.values) 11print(len(c_list)) 12#列を移動するためのリスト ※必要な分だけ作成 13col =('B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T') 14cc = 0 15# 更新範囲指定。A2:A100 のような文字列をつくる 16for cc in range(COLMAX): 17 data_range = col[cc] + "5:" + col[cc] + str(ROWMAX) 18 print(data_range) 19 cell_list = wks.range(data_range) 20 for (i,cell) in enumerate(cell_list): 21 cell.value = str(df[c_list[cc]][i]) 22 wks.update_cells(cell_list) 23 cc=cc+1 24 25set_with_dataframe(wks, df, row=5, col=2, resize=True, 26include_index=True) 27 28``` 29 30### 試したこと 31read_excelの引数を調べていろいろ使ってみましたが、うまく読み込めませんでした 32 33### 補足情報(FW/ツールのバージョンなど) 34 35説明不足な点があると思いますが、ご教授宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/27 05:05