質問編集履歴

1

エラーコードのミス

2021/09/16 06:24

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,24 +1,22 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- Excelに入力た値(数字)を、値が入っていない行まで繰り返し表示し、値が入っていない行があると次の処理へ移る
3
+ Excelの「投手」シートの選手の背番号、名前を順表示していき、最後の行まで読み込み終わると「外野手」シートで同じ処理を行いたい
4
-
5
- 例えばExcelのA1~A5に値が入っていれば1A~5Aまでの値を表示し次の処理へ移りたい。
6
-
7
-
8
4
 
9
5
 
10
6
 
11
7
  ### 発生している問題・エラーメッセージ
12
8
 
13
- Excelの行を一行ずつ見ていき、nullが出るまで処理を続けたいが、値が入っていないセルを見ると次の処理へ移らずNullPointerExceptionが発生する
9
+ Excelの行を一行ずつ見ていき、nullが出るまで処理を続けたいが、値が入っていないセルを見ると次の処理へ移らずNullPointerExceptionが発生する
14
10
 
15
- 上の例で言うと、A1~A5までの値を表示しNullPointerExceptionが発生する。
11
+ ![![イメージ説明](640450d293082ca7c5090b7ab9e08710.png)投手シート
16
12
 
17
- A6を処理しようとするのをやめたい。
13
+ ![イメージ説明](e56973a2712eec3e9359bec0709ad228.png)外野手シート
18
14
 
19
15
 
20
16
 
17
+ Cell cell2 = row2.getCell(0);
21
18
 
19
+ この行でエラーが出ているようです。
22
20
 
23
21
 
24
22
 
@@ -30,31 +28,111 @@
30
28
 
31
29
  ```Java
32
30
 
33
- int a = 0;
31
+ Workbook workbook = WorkbookFactory
34
32
 
35
- Row row = sheet.getRow(a);
33
+ .create(new FileInputStream(
36
34
 
37
- Cell cell = row.getCell(0);
35
+ "C:Sample.xlsx"));
38
36
 
39
- while (cell != null) {
37
+ Sheet sheet = workbook.getSheet("投手");
40
38
 
41
- Row row2 = sheet.getRow(a);
39
+ int a = 1;
42
40
 
43
- Cell cell2 = row2.getCell(0);
44
41
 
45
- switch(cell2.getCellType()) {
46
42
 
47
- case NUMERIC:
43
+ Row row = sheet.getRow(a);
48
44
 
49
-                System.out.println((int)cell2.getNumericCellValue());
45
+ Cell cell = row.getCell(0);
50
46
 
47
+ while (cell != null) {
48
+
49
+ Row row2 = sheet.getRow(a);
50
+
51
+ Cell cell2 = row2.getCell(0);
52
+
53
+ Row row3 = sheet.getRow(a);
54
+
55
+ Cell cell3 = row3.getCell(1);
56
+
57
+ switch (cell2.getCellType()) {
58
+
51
- break;
59
+ case NUMERIC:
60
+
61
+ System.out.print("背番号" + (int)cell2.getNumericCellValue()+",");
52
62
 
53
63
  default:
54
64
 
65
+ break;
66
+
67
+ }
68
+
69
+ switch (cell3.getCellType()) {
70
+
71
+ case STRING:
72
+
73
+ System.out.println("選手名 " + cell3.getStringCellValue());
74
+
55
- a++;
75
+ a++;
76
+
77
+ default:
56
78
 
57
79
  break;
80
+
81
+ }
82
+
83
+ }
84
+
85
+ Workbook workbook2 = WorkbookFactory
86
+
87
+ .create(new FileInputStream(
88
+
89
+ "C:Sample.xlsx"));
90
+
91
+ Sheet sheet2 = workbook2.getSheet("外野手");
92
+
93
+ int b = 1;
94
+
95
+ Row row4 = sheet2.getRow(b);
96
+
97
+ Cell cell4 = row4.getCell(0);
98
+
99
+ while (cell4 != null) {
100
+
101
+ Row row5 = sheet2.getRow(b);
102
+
103
+ Cell cell5 = row5.getCell(0);
104
+
105
+ Row row6 = sheet2.getRow(b);
106
+
107
+ Cell cell6 = row6.getCell(1);
108
+
109
+ switch (cell5.getCellType()) {
110
+
111
+ case NUMERIC:
112
+
113
+ System.out.print("背番号" + (int)cell5.getNumericCellValue()+",");
114
+
115
+ default:
116
+
117
+ break;
118
+
119
+ }
120
+
121
+ switch (cell6.getCellType()) {
122
+
123
+ case STRING:
124
+
125
+ System.out.println("選手名 " + cell6.getStringCellValue());
126
+
127
+ b++;
128
+
129
+ default:
130
+
131
+ break;
132
+
133
+ }
134
+
135
+ }
58
136
 
59
137
  ```
60
138