excel のシートで 複数行にわたって 取得項目があり、それを1行毎にではなくて、n行毎に繰り返して取得したいのですが、いくら探しても 「複数行毎に繰り返し」する関数や記事が見当たりませんでした。
openpyxl では出来ないのでしょうか? 元データのセルの連結・結合が多くてpandasのdataframeを使うのは難しいと感じたのでopenpyxlで処理したいと思いました
例 下記のように 3行ずつ 同じ項目が繰り返されています。
(実際のデータは セルの連結が多く、1行ずつチェックしてプログラムで判断するのが難しい)
なお、位置も実際はもう少し複雑です
A行 | B行 | C行 |
---|---|---|
A1(商品名) | B1 | C1 |
A2 | B2(コード) | C2 |
A3 | B3 | C3(価格) |
A4(商品名) | B4 | C4 |
A5 | B5(コード) | C2 |
A6 | B6 | C6(価格) |
複数行ごとにcsvで出力したい
商品名 | 商品コード | 価格 |
---|---|---|
A1(商品名) | B2(コード) | C3(価格) |
A4(商品名) | B5(コード) | C6(価格) |
python
1from openpyxl import Workbook 2from openpyxl import load_workbook 3wb='./****.xlsx' 4 5 6wb = load_workbook(item) 7ws1 = wb['Sheet1'] 8alchohol=ws1['B3'].value 9 10#最初の1単位(3行ずつの最初) 11item_name=ws1['a1'].value 12item_code=ws1['b2'].value 13item_price=ws1['c3'].value
わからないこと。任意の複数行毎にfor文を回せるのでしょうか?
自分で考えたこと
item_name は n行単位が3行毎だとすると A1 A4 A7 A10 を順次取得したいので
3ずつ 数字を足して for文で回せればいいでは?と思ったのですが、その方法論が全く浮かびません
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/07/26 03:26