質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
NullPointerException

null値の参照型変数を参照しようとした場合に投げられる、Javaにおける例外のひとつです。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

0回答

1124閲覧

Eclipseを使ってexcelデータの取得をしたい

lsla

総合スコア7

NullPointerException

null値の参照型変数を参照しようとした場合に投げられる、Javaにおける例外のひとつです。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2019/09/12 01:09

編集2019/09/12 05:31

excelからデータを取得してコマンドプロンプトへ表示したい

現在:Eclipseを使ってexcelに記録したデータを取得し、コマンドプロンプトへ表示させたい。
現在作成システム:「歴代アメリカ人大統領を問題形式で答えていく」システム

【イメージシステム】
Eclipse実行
プロンプト「○○年~○○年の大統領は?」
入力「第○代:氏名○○○○」
プロンプト「正解or不正解」
プロンプト「○○年~○○年の大統領は?」
入力「第○代:氏名○○○○」
:
:
プロンプト「END:お疲れ様でした。」

発生している問題・エラーメッセージ

メソッド getStringCellvalue() は型 XSSFCell で未定義です
import java.io.FileInputStream; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; //import java.lang.String getStringCellValue(); public class Daitouryou3 { public static void main(String[] args) { //パスの取得 String filePath = "C:\Users\s.shimamori\Documents\javaプログラム(個人用)\歴代アメリカ人大統領.xlsx"; // String sheet1 = null; String getRow = null; String getCell = null; // try { //Excelのワークブックの読み込み FileInputStream fis = new FileInputStream(filePath); //filePathの中身を読み込む操作するためのクラス(バイトレベルで・・・) XSSFWorkbook wb = new XSSFWorkbook(fis); //シートの読み込み XSSFSheet sheet = wb.getSheet("Sheet1"); /////値の読み込み///// for (int i = 1; i <= sheet.getLastRowNum(); i++) { //データ有きの最後の行までカウントしていく //String cs = sheet.getRow(i).getCell(0).getStringCellValue();//文字列のセルの値を取得する XSSFRow row = sheet.getRow(i); //i番目の行を引数に代入 XSSFCell cell = row.getCell(0); //0番目のセルを引数に代入 String cellString = cell.getStringCellvalue(); System.out.println(cellString);//表示 //NullPointerException()の除去////////////////////// try { if (cs != null) { System.out.println(cs.toString()); } else { System.out.println("null値です。"); } } catch (NullPointerException e) { e.printStackTrace(); ///////NullPointerException()の除去/////////////////// } ////////値の読み込み///// //return cellString.getString(); } } catch (Exception e) { e.printStackTrace(); } } }

試したこと

Javaエラー:java.lang.NullPointerExceptionについて
理解した事:ごく一般的なエラーであり、参照型Nullが参照されていないと発生する
参照先が無い参照メソッドの実行により発生

試したこと
・参照型がNullかどうかをif文で回した
結果:java.lang.NullPointerExceptionの発生

・参照型の設置
→ String a[] = null;
結果:java.lang.NullPointerExceptionの発生

以上のように、参照先をうまく設置できない状況です。

補足情報(FW/ツールのバージョンなど)

Eclipse: 4.7.3a
java: 8.0.1720011

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KoichiSugiyama

2019/09/12 04:00

ぱっと見た限りではforループの範囲設定がまずそうなのですが、例外が発生している個所で、iの値がいくつの時に例外が発生していますか?また、エラーメッセージは省略せず全てコピー&ペーストして見てもらった方が問題点が明確になりやすいと思います。
lsla

2019/09/12 04:45 編集

for文の範囲設定について → int i = 1 にする事で、行1番目から順に読み込んでいくように修正しました。 例外が発生している箇所で、iの値がいくつの時に例外が発生しているかについて →いくつ目で例外が発生しているのか、認識ができません。 →何回読めっていうより、あるデータの分だけ、読ませるようにしています。 エラーメッセージについて →メッセージは「NullPointerException()」のみです。 →全て、貼り付けています。
KoichiSugiyama

2019/09/12 05:05

あと、 String cs = __sheet.getRow(i).getCell(0).**getStringCellValue()**;//文字列のセルの値を取得する__ の部分、”__sheet”ってそのままのコードをコピーしたものですか?
lsla

2019/09/12 05:08

いえ、Ecilpseにか以下のように記載しています。 String cs = sheet.getRow(i).getCell(0).getStringCellValue();//文字列のセルの値を取得する
KoichiSugiyama

2019/09/12 05:18

そうすると、該当の行において、sheetがnullなのか、sheet.getRow(i)がnullなのか...という風に順番に確認してみて、nullに対して参照している部分がないか絞り込んでみてください。
lsla

2019/09/12 08:04

null の絞り込み関しまして、Referenceメソッドを使用しますか? また、ソースコードに関しまして、セルの値を詳細に分解し実行をした所、以下のエラーが表示されました。 エラー:メソッド getStringCellvalue() は型 XSSFCell で未定義です コードの意味は同じはずなのですが、出力するエラーが異なるのは、なぜなのでしょうか。 定義上では、 String sheet1 = null; String getRow = null; String getCell = null; にしているのですが、実行行動を見てみると、たぶん利用されてませんよね。 定義付けができません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問