JavaでExcelファイルを読み込む方法を現役エンジニアが解説【初心者向け】
初心者向けにJavaでExcelファイルを読み込む方法について解説しています。ここではApache POIを使ったファイルの読み込みを行います。全体の手順と書き方を学習しましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
JavaでExcelファイルを読み込む方法について解説します。
Apache POIはJavaライブラリで、これを利用することでjavaプログラムがWordやExcel等のMicrosoft Office形式のファイルを読み書きすることができるようになります。
実際にプログラムを書いて説明しているので、ぜひ理解しておきましょう。
そもそもJavaについてよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプJava講座の内容をもとに作成しています。
今回は、Javaに関する内容だね!
どういう内容でしょうか?
Excelファイルを読み込む方法について詳しく説明していくね!
お願いします!
Apache POIでExcelファイルを読み込む
Excelは列と行で構成されたセルの中に文字や数値等の情報を書き込むことができます。このExcelファイルに書き込まれた内容をjavaが読み取るプログラムを作成します。手順は以下の通りです。
1、Excelファイルへアクセスするためのオブジェクトを作成します
オブジェクトはorg.apache.poi.ss.usermodel.Workbookクラスです。java.io.Fileクラスのp部ジェクトを元に作成します。
2、Excelシートへのアクセス
1で作成したオブジェクトからgetSheetメソッドを使って、シート名を指定してアクセスします。
シートオブジェクトのクラスはorg.apache.poi.ss.usermodel.Sheetです。尚、シート名を文字列で指定する方法と0から始まるシート番号を指定する方法があります。
3、行へのアクセス
2のシートオブジェクトからgetRowメソッドを使って、行番号を指定してアクセスします。
行番号は0はじまりです。Excelファイル中に表示されている行番号とは異なるので注意しましょう。行オブジェクトのクラスはorg.apache.poi.ss.usermodel.Rowです。
4、セルへのアクセス
3の行オブジェクトからgetCellメソッドを使い、セル番号(左から順に0番始まり)を指定してアクセスします。
セルオブジェクトのクラスはorg.apache.poi.ss.usermodel.Cellです。
5、セル入力内容の取得
4のセルオブジェクトから取得します。記入されている内容が文字列と分かっている場合は文字列を取得するメソッドであるgetStringCellValue()を使います。
その他、
- 数値を取得するためのメソッドgetNumericCellValue()
- 日付を取得するためのメソッドgetDateCellValue()
- 関数を取得するgetCellFormula()メソッド
等があるので、取得したい値に応じて使い分けを行います。
実際に書いてみよう
Excelファイルの内容を読み取り、コンソール出力するプログラムです。
・Excelファイルの準備
Sample.xlsx というファイルを用意し、そのなかに「Sheet1」という名前のシートを作成、A列1行目に”おはよう”という文字を入力しておきます。
・ライブラリのインストール
Mavenを使用し、必要なライブラリをインストールします。pom.xmlの依存関係に以下を指定します。
<dependencies> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.1.0</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.0</version> </dependency> </dependencies>
・プログラム
import java.io.File; 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 Sample { public static void main(String[] args) throws EncryptedDocumentException, IOException { //エクセルファイルへアクセスするためのオブジェクト Workbook excel = WorkbookFactory.create(new File("Sample.xlsx")); // シート名がわかっている場合 Sheet sheet = excel.getSheet("Sheet1"); //0行目 Row row = sheet.getRow(0); //0番目のセル Cell cell = row.getCell(0); //文字列の取得 String value = cell.getStringCellValue(); //取得した文字列の表示 System.out.println(value); } }
実行すると以下がコンソールに出力されます。
おはよう
[PR] Javaプログラミングで挫折しない学習方法を動画で公開中
監修してくれたメンター
長屋雅美
独立系SIerで7年勤務後、現在はフリーのエンジニアとして自宅をオフィスとして活動しています。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもJavaやServletの技術を使ってWebアプリケーション開発を習得できるオンラインブートキャンプJava講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。