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

質問編集履歴

1

エラーコードのミス

2021/09/16 06:24

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -1,32 +1,71 @@
1
1
  ### 前提・実現したいこと
2
- Excelに入力した値(数字)を値が入っていない行まで繰り返し表示し、値が入っていないがあると次の処理へ移る
2
+ Excelの「投手」シートの選手の背番号名前を順に表示していき、最後のまで読み込み終わると「外野手」シートで同じ処理を行いたい
3
- 例えばExcelのA1~A5に値が入っていれば1A~5Aまでの値を表示し次の処理へ移りたい。
4
3
 
5
-
6
4
  ### 発生している問題・エラーメッセージ
7
- Excelの行を一行ずつ見ていき、nullが出るまで処理を続けたいが、値が入っていないセルを見ると次の処理へ移らずNullPointerExceptionが発生する
5
+ Excelの行を一行ずつ見ていき、nullが出るまで処理を続けたいが、値が入っていないセルを見ると次の処理へ移らずNullPointerExceptionが発生する
6
+ ![![イメージ説明](640450d293082ca7c5090b7ab9e08710.png)投手シート
8
- 上の例で言うと、A1~A5までの値を表示しNullPointerExceptionが発生する。
7
+ ![イメージ説明](e56973a2712eec3e9359bec0709ad228.png)外野手シート
9
- A6を処理しようとするのをやめたい。
10
8
 
9
+ Cell cell2 = row2.getCell(0);
10
+ この行でエラーが出ているようです。
11
11
 
12
12
 
13
13
 
14
14
 
15
+ ```Java
16
+ Workbook workbook = WorkbookFactory
17
+ .create(new FileInputStream(
18
+ "C:Sample.xlsx"));
19
+ Sheet sheet = workbook.getSheet("投手");
20
+ int a = 1;
15
21
 
16
- ```Java
17
- int a = 0;
18
- Row row = sheet.getRow(a);
22
+ Row row = sheet.getRow(a);
19
- Cell cell = row.getCell(0);
23
+ Cell cell = row.getCell(0);
20
- while (cell != null) {
24
+ while (cell != null) {
21
- Row row2 = sheet.getRow(a);
25
+ Row row2 = sheet.getRow(a);
22
- Cell cell2 = row2.getCell(0);
26
+ Cell cell2 = row2.getCell(0);
27
+ Row row3 = sheet.getRow(a);
28
+ Cell cell3 = row3.getCell(1);
23
- switch(cell2.getCellType()) {
29
+ switch (cell2.getCellType()) {
24
- case NUMERIC:
30
+ case NUMERIC:
25
-                System.out.println((int)cell2.getNumericCellValue());
31
+ System.out.print("背番号" + (int)cell2.getNumericCellValue()+",");
26
- break;
27
32
  default:
28
- a++;
29
33
  break;
34
+ }
35
+ switch (cell3.getCellType()) {
36
+ case STRING:
37
+ System.out.println("選手名 " + cell3.getStringCellValue());
38
+ a++;
39
+ default:
40
+ break;
41
+ }
42
+ }
43
+ Workbook workbook2 = WorkbookFactory
44
+ .create(new FileInputStream(
45
+ "C:Sample.xlsx"));
46
+ Sheet sheet2 = workbook2.getSheet("外野手");
47
+ int b = 1;
48
+ Row row4 = sheet2.getRow(b);
49
+ Cell cell4 = row4.getCell(0);
50
+ while (cell4 != null) {
51
+ Row row5 = sheet2.getRow(b);
52
+ Cell cell5 = row5.getCell(0);
53
+ Row row6 = sheet2.getRow(b);
54
+ Cell cell6 = row6.getCell(1);
55
+ switch (cell5.getCellType()) {
56
+ case NUMERIC:
57
+ System.out.print("背番号" + (int)cell5.getNumericCellValue()+",");
58
+ default:
59
+ break;
60
+ }
61
+ switch (cell6.getCellType()) {
62
+ case STRING:
63
+ System.out.println("選手名 " + cell6.getStringCellValue());
64
+ b++;
65
+ default:
66
+ break;
67
+ }
68
+ }
30
69
  ```
31
70
 
32
71