回答編集履歴

5

追記

2020/11/04 15:42

投稿

quickquip
quickquip

スコア11038

test CHANGED
@@ -25,3 +25,33 @@
25
25
  とか
26
26
 
27
27
  そういったことになるかと思いますが。
28
+
29
+
30
+
31
+ ----
32
+
33
+ (追記)
34
+
35
+
36
+
37
+ どのセルがマージされているかという情報は、ワークシートの`merged_cells.ranges`に入っています。
38
+
39
+ 対象にしているセルがどうマージされていて書き換えるにはどこのセルの値を変えればいいか? を知るにはそこから地道に探索するしかないでしょう。
40
+
41
+ セルの方にはスタイルに関係する情報だけがあって、どのようにマージされているかという情報はありません。
42
+
43
+ (xlsxファイルのつくりがそうなっているという話です)
44
+
45
+
46
+
47
+ 参考
48
+
49
+ [MergedCellはスタイルに関連する情報だけしかない](https://openpyxl.readthedocs.io/en/stable/api/openpyxl.cell.cell.html#openpyxl.cell.cell.MergedCell)
50
+
51
+ [ワークシートのmerged_cells.rangesを使えという指示](https://openpyxl.readthedocs.io/en/stable/api/openpyxl.worksheet.worksheet.html#openpyxl.worksheet.worksheet.Worksheet.merged_cell_ranges)
52
+
53
+ [ワークシートのmerged_cellsのクラス](https://openpyxl.readthedocs.io/en/stable/api/openpyxl.worksheet.cell_range.html#openpyxl.worksheet.cell_range.MultiCellRange)
54
+
55
+
56
+
57
+ [python - How to detect merged cells in excel with openpyxl - Stack Overflow](https://stackoverflow.com/questions/39574991/how-to-detect-merged-cells-in-excel-with-openpyxl)

4

2020/11/04 15:42

投稿

quickquip
quickquip

スコア11038

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  例としてA1とB1が結合されているとすると、そこに表示されている値を持っているのはA1のセルで、B1のセルではありません。
12
12
 
13
- ここで"B1のセルの値を書き換える"というコードが実行された時、そのコードを書いた人の意思が"A1セルの値を変えたかった"のか"B1セルの値を**誤って**変えようとした"のか、**あいまいなので**フェイルファストとしてエラーを返すのは自然な設計だと思います。
13
+ ここで"B1のセルの値を書き換える"というコードが実行された時、そのコードを書いた人の意思が"A1セルの値を変えたかった"のか"B1セルの値を**誤って**変えようとした"のか、**あいまいなので**フェイルファストとしてエラーを返すのは自然な設計だと思います。
14
14
 
15
15
 
16
16
 

3

フェイルファストの間違いでした

2020/11/04 00:59

投稿

quickquip
quickquip

スコア11038

test CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  例としてA1とB1が結合されているとすると、そこに表示されている値を持っているのはA1のセルで、B1のセルではありません。
12
12
 
13
- ここで"B1のセルの値を書き換える"というコードが実行された時、そのコードを書いた人の意思が"A1セルの値を変えたかった"のか"B1セルの値を**誤って**変えようとした"のか、**あいまいなので**フェイルとしてエラーを返すのは自然な設計だと思います。
13
+ ここで"B1のセルの値を書き換える"というコードが実行された時、そのコードを書いた人の意思が"A1セルの値を変えたかった"のか"B1セルの値を**誤って**変えようとした"のか、**あいまいなので**フェイルファストとしてエラーを返すのは自然な設計だと思います。
14
14
 
15
15
 
16
16
 

2

些細

2020/11/04 00:58

投稿

quickquip
quickquip

スコア11038

test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  コードが**読めません**ので質問者さんがどういうつもりでコードを書いたのか分かりません。
18
18
 
19
- 結合されて値を書き込めないセルかどうか、型をチェックしてMergedCell型ならその処理を飛ばす
19
+ 結合されて値を書き込めないセルかどうか、型をチェックしてMergedCell型ならその処理を飛ばす
20
20
 
21
21
  とか
22
22
 

1

間違い

2020/11/04 00:26

投稿

quickquip
quickquip

スコア11038

test CHANGED
@@ -16,11 +16,11 @@
16
16
 
17
17
  コードが**読めません**ので質問者さんがどういうつもりでコードを書いたのか分かりません。
18
18
 
19
- 結合されて値を書き込めないセルかどうかを、型かどうかをチェックしてMergedCell型ならその処理を飛ばす
19
+ 結合されて値を書き込めないセルかどうかを、型をチェックしてMergedCell型ならその処理を飛ばす
20
20
 
21
21
  とか
22
22
 
23
- が結合されているのが意図していないことなのでExcelシートを直す
23
+ セルが結合されている事実が意図していないことなのでExcelシートを直す
24
24
 
25
25
  とか
26
26