回答編集履歴

5

追記

2020/11/12 12:04

投稿

quickquip
quickquip

スコア11042

test CHANGED
@@ -23,3 +23,99 @@
23
23
 
24
24
 
25
25
  でしょうか。
26
+
27
+
28
+
29
+ ----
30
+
31
+
32
+
33
+ > セルの右側の罫線を消すコードであるのに関わらず
34
+
35
+
36
+
37
+ そう動いていないことはあなたが自分自身の目で確認していますよね? その事実から目をそらしていませんか?
38
+
39
+ あなたが**どう思って**書いたかと、あなたが書いたコードが**どう動くか**とは関係がありませんよ。
40
+
41
+
42
+
43
+ あなたが書いたコードは**右側にだけ罫線を書いて上下左の罫線を消す**コードになっているんですよ。
44
+
45
+ だから左が消えるんです。
46
+
47
+
48
+
49
+
50
+
51
+ あなたの目的は、コードの前半で
52
+
53
+
54
+
55
+ ![answer1.xlsx](6fd75e38e6ff9f6b2407104a9e419ad7.png) answer1.xlsx
56
+
57
+
58
+
59
+ こうなっていたものを
60
+
61
+
62
+
63
+ ![answer2.xlsx](d24a26365ee1017fdc0204a403d7c1e4.png) answer2.xlsx
64
+
65
+
66
+
67
+ こうしたいということではないですか?
68
+
69
+
70
+
71
+ この2つのxlsxは以下のコードで出力されます。
72
+
73
+
74
+
75
+ ```python
76
+
77
+ from openpyxl import Workbook
78
+
79
+ from openpyxl.styles.borders import Border, Side
80
+
81
+
82
+
83
+ wb = Workbook()
84
+
85
+ ws = wb["Sheet"]
86
+
87
+ side = Side(style='thin', color='000000')
88
+
89
+
90
+
91
+ border = Border(top=side, bottom=side, left=side, right=side)
92
+
93
+
94
+
95
+ for col_num in range(3,50):
96
+
97
+ for row_num in range(3,35):
98
+
99
+ ws.cell(row=row_num, column=col_num).border = border
100
+
101
+
102
+
103
+ wb.save('answer1.xlsx')
104
+
105
+
106
+
107
+ border2 =Border(top=side, bottom=side, left=side) # 上下左に罫線を引いて右を消す
108
+
109
+ border3 =Border(top=side, bottom=side, right=side) # 上下右に罫線を引いて左を消す
110
+
111
+
112
+
113
+ ws['C4'].border = border2 # 上下左に罫線を引いて右を消す
114
+
115
+ ws['D4'].border = border3 # 上下右に罫線を引いて左を消す
116
+
117
+
118
+
119
+ wb.save('answer2.xlsx')
120
+
121
+ ```

4

消すならこうかも

2020/11/12 12:04

投稿

quickquip
quickquip

スコア11042

test CHANGED
@@ -10,9 +10,9 @@
10
10
 
11
11
  ```
12
12
 
13
- border2 =Border(top=side,bottom=side,left=side,right=side2)
13
+ border2 =Border(top=side,bottom=side,left=side)
14
14
 
15
- border3 =Border(top=side,bottom=side,left=side2,right=side)
15
+ border3 =Border(top=side,bottom=side,right=side)
16
16
 
17
17
  ws3['C4'].border = border2
18
18
 

3

コード更新

2020/11/11 14:59

投稿

quickquip
quickquip

スコア11042

test CHANGED
@@ -12,6 +12,12 @@
12
12
 
13
13
  border2 =Border(top=side,bottom=side,left=side,right=side2)
14
14
 
15
+ border3 =Border(top=side,bottom=side,left=side2,right=side)
16
+
17
+ ws3['C4'].border = border2
18
+
19
+ ws3['D4'].border = border3
20
+
15
21
  ```
16
22
 
17
23
 

2

追記

2020/11/11 14:57

投稿

quickquip
quickquip

スコア11042

test CHANGED
@@ -1 +1,19 @@
1
1
  `border2 =Border(right=side2)`ですから、セルの**右側にだけ罫線を書く**指定になっています。
2
+
3
+
4
+
5
+ ----
6
+
7
+ 欲しい結果が示されていないのでエスパー回答ですが
8
+
9
+
10
+
11
+ ```
12
+
13
+ border2 =Border(top=side,bottom=side,left=side,right=side2)
14
+
15
+ ```
16
+
17
+
18
+
19
+ でしょうか。

1

強調範囲変更

2020/11/11 14:55

投稿

quickquip
quickquip

スコア11042

test CHANGED
@@ -1 +1 @@
1
- `border2 =Border(right=side2)`ですから、セルの右側**にだけ**罫線を書く指定になっています。
1
+ `border2 =Border(right=side2)`ですから、セルの**右側にだけ罫線を書く**指定になっています。