回答編集履歴
3
修正
answer
CHANGED
@@ -82,7 +82,7 @@
|
|
82
82
|
# 勘定名から勘定コードを逆引きする。
|
83
83
|
code = code_index.get(wsws.cell(row, 1).value)
|
84
84
|
# codesに含まれる勘定コードがある行にデータを書き込む
|
85
|
-
if code in codes:
|
85
|
+
if data.get(mise) and data[mise].get(code) and code in codes: # 修正
|
86
86
|
write_values(wsws, row, 2, data[mise][code])
|
87
87
|
row += 1
|
88
88
|
|
@@ -92,4 +92,6 @@
|
|
92
92
|
|
93
93
|
|
94
94
|
wbwb.save("結果.xlsx")
|
95
|
-
```
|
95
|
+
```
|
96
|
+
|
97
|
+
※上のコードでは、Book1にデータがなく、かつ結果.xlsxに既にデータがある場合、「結果.xlsx」の当該データは上書き消去されません
|
2
修正
answer
CHANGED
@@ -27,8 +27,8 @@
|
|
27
27
|
c_mise = 3
|
28
28
|
|
29
29
|
|
30
|
-
last_col =
|
30
|
+
last_col = 1 # 修正
|
31
|
-
for cell in ws["
|
31
|
+
for cell in ws["2:2"]: # 修正
|
32
32
|
if cell.value is not None:
|
33
33
|
last_col += 1
|
34
34
|
|
1
コメント修正
answer
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
そもそも元のコードは力業で無理やり操作しようとしているため、
|
1
|
+
そもそも元のコードは力業で無理やり操作しようとしているため、元のコードを生かしたまま希望の動作を行わせるように修正しようと思うと
|
2
2
|
かなり難しいと思いました。
|
3
3
|
|
4
4
|
下記のようにデータを構造的に読み取り、構造的に書き込む必要があると思います。
|
5
|
+
(ただし下記コードも、月の並びについては考慮していない(Book1と結果.xlsxで月の並びが同じであることが前提となっている)ため汎用性に乏しいスクリプトである点は否めません)
|
5
6
|
|
6
7
|
```
|
7
8
|
import openpyxl as py
|