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

回答編集履歴

5

追記

2020/11/12 12:04

投稿

quickquip
quickquip

スコア11314

answer CHANGED
@@ -10,4 +10,52 @@
10
10
  ws3['D4'].border = border3
11
11
  ```
12
12
 
13
- でしょうか。
13
+ でしょうか。
14
+
15
+ ----
16
+
17
+ > セルの右側の罫線を消すコードであるのに関わらず
18
+
19
+ そう動いていないことはあなたが自分自身の目で確認していますよね? その事実から目をそらしていませんか?
20
+ あなたが**どう思って**書いたかと、あなたが書いたコードが**どう動くか**とは関係がありませんよ。
21
+
22
+ あなたが書いたコードは**右側にだけ罫線を書いて上下左の罫線を消す**コードになっているんですよ。
23
+ だから左が消えるんです。
24
+
25
+
26
+ あなたの目的は、コードの前半で
27
+
28
+ ![answer1.xlsx](6fd75e38e6ff9f6b2407104a9e419ad7.png) answer1.xlsx
29
+
30
+ こうなっていたものを
31
+
32
+ ![answer2.xlsx](d24a26365ee1017fdc0204a403d7c1e4.png) answer2.xlsx
33
+
34
+ こうしたいということではないですか?
35
+
36
+ この2つのxlsxは以下のコードで出力されます。
37
+
38
+ ```python
39
+ from openpyxl import Workbook
40
+ from openpyxl.styles.borders import Border, Side
41
+
42
+ wb = Workbook()
43
+ ws = wb["Sheet"]
44
+ side = Side(style='thin', color='000000')
45
+
46
+ border = Border(top=side, bottom=side, left=side, right=side)
47
+
48
+ for col_num in range(3,50):
49
+ for row_num in range(3,35):
50
+ ws.cell(row=row_num, column=col_num).border = border
51
+
52
+ wb.save('answer1.xlsx')
53
+
54
+ border2 =Border(top=side, bottom=side, left=side) # 上下左に罫線を引いて右を消す
55
+ border3 =Border(top=side, bottom=side, right=side) # 上下右に罫線を引いて左を消す
56
+
57
+ ws['C4'].border = border2 # 上下左に罫線を引いて右を消す
58
+ ws['D4'].border = border3 # 上下右に罫線を引いて左を消す
59
+
60
+ wb.save('answer2.xlsx')
61
+ ```

4

消すならこうかも

2020/11/12 12:04

投稿

quickquip
quickquip

スコア11314

answer CHANGED
@@ -4,8 +4,8 @@
4
4
  欲しい結果が示されていないのでエスパー回答ですが
5
5
 
6
6
  ```
7
- border2 =Border(top=side,bottom=side,left=side,right=side2)
7
+ border2 =Border(top=side,bottom=side,left=side)
8
- border3 =Border(top=side,bottom=side,left=side2,right=side)
8
+ border3 =Border(top=side,bottom=side,right=side)
9
9
  ws3['C4'].border = border2
10
10
  ws3['D4'].border = border3
11
11
  ```

3

コード更新

2020/11/11 14:59

投稿

quickquip
quickquip

スコア11314

answer CHANGED
@@ -5,6 +5,9 @@
5
5
 
6
6
  ```
7
7
  border2 =Border(top=side,bottom=side,left=side,right=side2)
8
+ border3 =Border(top=side,bottom=side,left=side2,right=side)
9
+ ws3['C4'].border = border2
10
+ ws3['D4'].border = border3
8
11
  ```
9
12
 
10
13
  でしょうか。

2

追記

2020/11/11 14:57

投稿

quickquip
quickquip

スコア11314

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

1

強調範囲変更

2020/11/11 14:55

投稿

quickquip
quickquip

スコア11314

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