LoginSignup
1
0

More than 1 year has passed since last update.

ApachePOIでJavaからExcelを読み込む(Eclipse)

Posted at

はじめに

Javaでエクセルファイルの読込をする方法を説明します。
かなりつまづきましたが、なんとかうまくいったのでこの方法を忘れないようにメモ代わりとして。
ただし、この方法はいろいろ試していたらなんか上手くいった程度のものなので間違っているかもしれないことをご了承ください。

1.ApachePOIのダウンロード

公式サイトからApachePOIをダウンロードします。
apachepoiサイト画像.png

ダウンロードしたZipファイルを解凍して適当なフォルダに入れます。

2.Eclipseのビルド・パスの設定

・何かしらのプロジェクトを選択した状態で右クリック
>プロパティ>Javaのビルドパス
2.png

・クラスパスを選択して右の外部JARの追加をおす
・ポップアップ画面からさっきダウンロードしたのを全部ここにつっこみます。1

3.もう一個jarファイルを追加する

このサイトからlog4j-coreをダウンロードして先ほど同様にEclipseの設定までします。
これを入れないと上手く動かないようです。
3.png
好きなバージョンを選んで...
4.png
jarファイルをダウンロードして先ほど同様にEclipseの設定までします。
これで準備は完了です。

4.読み込むためのエクセルファイルを準備する

image.png
中身は何でもよいので、適当に作って、名前を付けて保存します。
自分はreadTest.xlsxというファイル名です。

5.コードを書く

コードもこのサイトを参考にしていますが、変えている箇所もあります。

import java.io.FileInputStream;
import java.io.IOException;
import org.apache.poi.EncryptedDocumentException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

public class Test {

	public static void main(String[] args) throws EncryptedDocumentException, IOException{
		
		Workbook workbook = null;
		try {
			workbook = WorkbookFactory.create(new FileInputStream("ファイルのパスを書く(パス取得方法後述)"));
			Sheet sheet = workbook.getSheetAt(0);
			
			Row row0 = sheet.getRow(0); //一行目
			Row row2 = sheet.getRow(2); //3行目
			
			Cell cell0 = row0.getCell(0); //a1
			Cell cell1 = row0.getCell(1); //b1
			Cell cell2 = row2.getCell(2); //C3
			
			System.out.println(cell0.getStringCellValue());
			System.out.println(cell1.getNumericCellValue());
			System.out.println(cell2.getStringCellValue());
			
			System.out.println("完了");
			
		}catch(IOException e) {
			System.out.println(e.toString());
		}finally {
			try {
				if(workbook != null) {
					workbook.close();
				}
			}catch(IOException e) {
				System.out.println(e.toString());
			}
		}
	}

}

パスの取得方法

Windowsの場合は、
5.png
ファイルを選択した状態で、ホームタブの赤丸で囲ったボタンを押すとパスがクリップボードにコピーされます。
Macとかの場合は分からないので検索してください。。

ちょっと注意

自分がそのままパスをコピペして実行すると、無効なエスケープシーケンスですってEclipseに怒られてしまいました。
どうも、パスのバックスラッシュや¥マークを2つ重ねる必要があるようです。
お気を付けください。
例)
そのままコピペするとこうなるところを...
"C:\Users\Username\Saved Pictures\5.png"

こうする
"C:\\Users\\Username\\Saved Pictures\\5.png"

6.実行する

実行結果はこんな感じになります。

テスト用
123.0
Hello
完了

エクセル上に数字123を書いたセルは、文字列ではなく、数値で取得するようにしているので、「123.0」と表示されていると思われます。

終わりに

以上で説明は終わりです。
自分が上手くいった方法をまとめただけですが、誰かの助けになれば幸いです。

  1. 自分が参考にしたサイトでは、全部入れないと書いてあったのですが、自分がダウンロードしたファイルと中身が違ったので、とりあえず全部入れてみました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0