JavaでExcelファイルの読み込み・作成・出力方法を解説!
  • facebookページ
  • twitterページ
  • 2021.01.01

    JavaでExcelファイルの読み込み・作成・出力方法を解説!

    JavaでExcelを操作する【Apache POI】

    この記事では、JavaでExcelファイルを操作する方法について解説します。

    JavaでExcelファイルを操作するには、「Apache POI」というライブラリを使用しましょう。

    Apache POIとは、Javaプログラムが Excel や Word など「Microsoft Officeのファイル」を読み書きできるようにするライブラリです。

    まずは、Apache POIをダウンロード・インストールしましょう。

    Apache POIのサイトにアクセスし、「Binary Distribution」からリンクをクリックします。

    https://poi.apache.org/download.html#POI-4.1.2

    JavaでExcelを操作する【Apache POI】

    2020年12月の最新バージョンは、4.1.2です。

    遷移先のページから「HTTP」のリンクをクリックすると、ダウンロードを開始します。

    JavaでExcelを操作する【Apache POI】

    ダウンロードが完了したら、zipファイルを展開しましょう。

    中身を確認してみると、次のようなファイル群が格納されています。

    展開したディレクトリはどこに格納してもOKですが、Javaファイルと同じ場所に格納しておくと便利です。

    ここでは、デスクトップに置いておきました。

    これで準備は完了です!

    Excelファイルの読み込み

    まずは、Excelファイルの読み込みを行ってみましょう。

    サンプルとして、「User.xlsx」というファイルを用意し、次のようにデータを入力しました。

    1行目にユーザーの名前、性別、年齢を入れている状態ですね。

    各ファイル・フォルダの構成は次の通りです。

    デスクトップにすべて置いています。

    そして、Main.javaには以下のように記述します。

    セルの値を取得する部分は、for文を使っても良いですが、ここではわかりやすくするために1つずつ取得しています。

    このファイルをコンパイルするには、次のように指定します。

    デスクトップにある「poi-4.1.2」をクラスパスとして通しています。

    クラスパスの通し方は、ディレクトリやファイルが置いてある場所によって異なるので注意してください。

    なお、クラスパスについては、以下の記事で詳しく解説しています。

    もし不明点があれば、ぜひ参考にしてみてください!

    【関連記事】

    ▶︎【Java】classpathの意味や指定方法を解説!(Windows/Mac)

    上記のファイルを実行すると、次のような結果を取得できます。

    このように、Excelファイルにある値を取得できました!

    それぞれの処理は、コメントに書いてある通りです。

    WorkbookFactory.create」でExcelファイルへアクセスし、読み込めるようにしています。

    そして「excel.getSheet」でシート名を取得しました。

    後は、「getRow」「getCell」で、該当の行・列にある値を取得して、表示している仕組みです。

    情報量が多い場合は、for文などを使ってデータをまとめて取得・表示すると良いでしょう。

    Excelファイルを作成・出力

    では、今度はJavaでExcelファイルを作成して、出力してみましょう。

    一度、作成していた「User.xlsx」を削除し、同じものをJavaで作成してみます。

    記述例は以下の通りです。

    少し補足すると、「new XSSFWorkbook()」でファイルフォーマットを作成しています。

    Excel2003以前を使用している場合は、XSSFWorkbookではなく「HSSFWorkbook」を使ってください。

    import部分も「import org.apache.poi.xssf.usermodel.XSSFWorkbook;」ではなく、「org.apache.poi.hssf.usermodel.HSSFWorkbook;」になります。

    そして、「createSheet」でシートを作成しています。

    ここでは、先ほど同様に「user_data」としました。

    「createRow」「createCell」で、行と列を作成し、値を入力しています。

    基本的な流れは、Excelファイルの読み込みと大差ありません。

    使っているメソッドなどが異なるくらいでしょう。

    そして最後に、「FileOutputStream」でExcelファイル名を指定し、「write(out)」でファイルを出力しました。

    上記のファイルを実行すると、デスクトップに「User.xlsx」というExcelファイルが作成されているはずです。

    中身も、読み込み時と同様になっています。

    実行方法も、読み込み時と同じく以下のようにコンパイル・実行します。

    これで、Excelファイルの作成・出力が完了です!

    Excelファイルに書き込みをする

    ここでは、既存のExcelファイルを読み込んだ上で、書き込みする方法を紹介します。

    流れとしては、Excelファイルの読み込みと作成で紹介した方法を組み合わせる形です。

    以下のように記述できます。

    同じファイルに書き込もうとするとエラーになるため、「User02.xlsx」と別ファイルで上書きしています。

    実行結果を見てみると、「User.xlsx」の内容を読み込んだ上で、新しいデータが書きこめています。

    ■実行結果

    Excelファイルの列を削除する

    ここでは、作成したExcelファイルの特定の列を削除する方法を紹介します。

    以下は一例ですが、年齢が入力されたセル(2番目)を空白にすることで削除しています。

    出力方法などは、書き込みの部分と同様です。

    実行結果の画像は省略しますが、年齢の列が削除されているはずです。

    比較的、処理の仕組みも理解しやすく簡単な方法だと思います!



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE