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

質問編集履歴

2

補足項目を追記しました。

2018/12/10 15:30

投稿

Kyohei
Kyohei

スコア23

title CHANGED
File without changes
body CHANGED
@@ -96,4 +96,5 @@
96
96
 
97
97
  out_wb.save(assign_path)
98
98
 
99
- ```
99
+ ```
100
+ 補足:sheet.cell(row=r, column=10).valueの値は空白セルか整数値が入っています。

1

試行錯誤1項目以下が追記となります。

2018/12/10 15:30

投稿

Kyohei
Kyohei

スコア23

title CHANGED
File without changes
body CHANGED
@@ -50,4 +50,50 @@
50
50
  File "/Users/kyohei/Documents/rpa_Hanyu_Project (1).py", line 15, in <module>
51
51
  uriage =round((sheet.cell(row=r, column=10).value),-3)//1000
52
52
  TypeError: type NoneType doesn't define __round__ method
53
+ ```
54
+
55
+ 試行錯誤1:エラーを受けて、sheet.cell(row=r, column=10).valueに空白セルがいくつかあるので、
56
+      Noneというエラーが出たと解釈した上でのコード変更を下記のようにifで制御してみましたが
57
+      結果は同じ内容のエラーでした。
58
+      解決策をご教授いただきますようお願い致します。
59
+ ```ここに言語を入力
60
+ import openpyxl
61
+
62
+
63
+ report_path = 'rpa db_tok_report.xlsx'
64
+ assign_path = 'rpa 41得意先管理(大阪).xlsx'
65
+
66
+ wb = openpyxl.load_workbook(report_path, data_only=True, read_only=True)
67
+ sheet = wb.active
68
+
69
+ #売上実績を読み込む
70
+
71
+ report = {}
72
+ for r in range(2, sheet.max_row+1):
73
+ name = sheet.cell(row=r, column=2).value
74
+ if sheet.cell(row=r, column=10).value=='':
75
+ uriage=''
76
+ else:
77
+ uriage=round(sheet.cell(row=r, column=10).value,-3)//1000
78
+ report[name]={'uriage':uriage}
79
+ print(report)
80
+
81
+
82
+ #出力用のファイルを読み込む
83
+
84
+ out_wb = openpyxl.load_workbook(assign_path)
85
+ out_sheet = out_wb.get_sheet_by_name('データ')
86
+ for r in range(2, out_sheet.max_row+1):
87
+ name = out_sheet.cell(row=r, column=2).value
88
+
89
+ #名前に応じた売上を書き込む
90
+
91
+ if name in report:
92
+ out_sheet.cell(row=r, column=11).value = report[name]['uriage']
93
+
94
+
95
+ #書き込み後の保存
96
+
97
+ out_wb.save(assign_path)
98
+
53
99
  ```