teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

cntがNoneとなる場合の対応

2021/06/17 15:12

投稿

退会済みユーザー
answer CHANGED
@@ -43,7 +43,8 @@
43
43
  space, usercode, date, username, name, appointer, item, kouji, mobile, nazo, mail, cnt, price, per, bikou = row
44
44
  date_s = date.strftime('%m/%d')
45
45
  items.append([date_s, name, item, cnt, price, per])
46
+
46
- total += cnt * price
47
+ total += (cnt or 0) * (price or 0)
47
48
  return {'items':items, 'total': total}
48
49
 
49
50
  if __name__ == "__main__":

1

冒頭のコメントがまぎらわしかったようなので修正する

2021/06/17 15:12

投稿

退会済みユーザー
answer CHANGED
@@ -1,7 +1,9 @@
1
+ 元のコードの
1
- date, name, item, cnt, price, per = row
2
+ date, name, item, cnt, price, per = rowだと
2
- 画像のエクセルと変数の数が一致してないですね。
3
+ 画像のエクセルと変数の数が一致してない
4
+ 下記のコードでは一致させています。
3
5
 
4
- あと5行目以降からデータとして読み込まないとエラーなり
6
+ また、5行目からデータ読み取るよう修正しした。
5
7
 
6
8
  ```
7
9
  import openpyxl as excel, json
@@ -24,6 +26,7 @@
24
26
 
25
27
  sheet = excel.load_workbook(in_file).active
26
28
  for i, row in enumerate(sheet.iter_rows()):
29
+ #5行目からデータを読み取る
27
30
  if i<4:
28
31
  continue
29
32
  values = [col.value for col in row]