icon
icon

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()メソッド
1時間でできる無料体験!

等があるので、取得したい値に応じて使い分けを行います。

 

実際に書いてみよう

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年勤務後、現在はフリーのエンジニアとして自宅をオフィスとして活動しています。
JavaやC♯、shellscriptを用いた開発を主に担当し、TechAcademyではJavaコースを担当しています。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは、初心者でもJavaやServletの技術を使ってWebアプリケーション開発を習得できるオンラインブートキャンプJava講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する