Apache POIの基本的な使い方の詳しい説明

Apache POIの基本的な使い方の詳しい説明

基本的な紹介

注目ポイント

  • Apache POI は、Java で記述された、無料のオープン ソースのクロスプラットフォーム Java API です。Apache POI は、Java プログラムが Microsoft Office 形式のファイルを読み書きするための API を提供します。
  • 最も一般的に使用される方法は、POI を使用して Excel ファイルを操作することです。
  • また、ワードなどの他の形式の文書も操作できます。

jxl: Excel操作に特化しており、Excelを操作するために特別に使用されます

POIを使用するには、Maven座標をインポートする必要があります

<依存関係>
  <グループ ID>org.apache.poi</グループ ID>
  <artifactId>ポイ</artifactId>
  <バージョン>3.14</バージョン>
</依存関係>
<依存関係>
  <グループ ID>org.apache.poi</グループ ID>
  <artifactId>poi-ooxml</artifactId>
  <バージョン>3.14</バージョン>
</依存関係>

POI構造: 異なるドキュメント形式で操作する場合、対応するクラスが提供されます

HSSF - Microsoft Excel XLS形式のファイルの読み取りと書き込み機能を提供します
XSSF - Microsoft Excel OOXML XLSX 形式のファイルの読み取りと書き込みの機能を提供します
HWPF - Microsoft Word DOC形式のファイルの読み取りと書き込み機能を提供します
HSLF - Microsoft PowerPoint形式のファイルの読み取りと書き込み機能を提供します
HDGF - Microsoft Visio形式のファイルを読み取る機能を提供します
HPBF - Microsoft Publisher形式のファイルを読み取る機能を提供します
HSMF - Microsoft Outlook形式のファイルを読み取る機能を提供します

入門テスト (Excel ファイルからのデータの読み取り)

POIを使用すると、既存のExcelファイルからデータを読み取ることができます。

ステップ1: Maven座標をインポートする

2番目のステップは

ステップ2: Excelファイルを作成する

ここに画像の説明を挿入

ステップ3: テストコードを書く

パッケージ com.yy.test;

org.apache.poi.ss.usermodel.Cell をインポートします。
org.apache.poi.ss.usermodel.Row をインポートします。
org.apache.poi.xssf.usermodel.XSSFSheet をインポートします。
org.apache.poi.xssf.usermodel.XSSFWorkbook をインポートします。
org.junit.Test をインポートします。

java.io.File をインポートします。
java.io.FileInputStream をインポートします。

/**
 * @author マーストン
 * @日付 2021/10/29
 */
パブリッククラスPOITest {
    @テスト
    パブリックvoid test()は例外をスローします{
        // 入力ストリームを渡し、指定されたファイルを読み込み、Excel オブジェクト (ワークブック) を作成します。
        XSSFWorkbook Excel = 新しい XSSFWorkbook(新しい FileInputStream(新しい File("E:\\testNomal\\poi.xlsx")));
        //Excel ファイルの最初のシート タブを読み取ります XSSFSheet sheet = excel.getSheetAt(0);
        //シートページには多くの行があります。シートタブページを走査し、各行のデータを取得します for (Row row : sheet) {
            //行を走査し、各セルオブジェクトを取得します for (Cell cell : row) {
                //cell はセル オブジェクトを表します。System.out.println(cell.getStringCellValue()); //getStringCellValue 2 番目の列は数値であり、文字列型に変換できないため、エラーが報告されます。//Excel テーブルの 2 番目の列の内容を文字列型に変更するだけです。}
        }
        //Excel ファイルを閉じますexcel.close();
    }
}

実行結果:

ここに画像の説明を挿入

今回は入門編なので、タイプを以下のように変更し、Excel ファイルの内容を修正します。

ここに画像の説明を挿入
ここに画像の説明を挿入

コードの説明と拡張

上記の導入事例から、POI が Excel テーブルを操作するためのいくつかのコア オブジェクトをカプセル化していることがわかります。

XSSFWorkbook: ワークブック
XSSFSheet: ワークシート
行: 行
セル: セル

上記のケースは、ワークシートをトラバースして行を取得し、行をトラバースしてセルを取得し、最後にセル内の値を取得するというものです。

別の方法としては、ワークシートの最後の行番号を取得し、行番号に応じて行オブジェクトを取得し、行全体の最後のセル インデックスを取得し、セル インデックスに応じて各行のセル オブジェクトを取得します。コードは次のとおりです。

パッケージ com.yy.test;

org.apache.poi.ss.usermodel.Cell をインポートします。
org.apache.poi.ss.usermodel.Row をインポートします。
org.apache.poi.xssf.usermodel.XSSFRow をインポートします。
org.apache.poi.xssf.usermodel.XSSFSheet をインポートします。
org.apache.poi.xssf.usermodel.XSSFWorkbook をインポートします。
org.junit.Test をインポートします。

java.io.File をインポートします。
java.io.FileInputStream をインポートします。

/**
 * @author マーストン
 * @日付 2021/10/29
 */
パブリッククラスPOITest {
    @テスト
    パブリック void test2() は例外をスローします {
        // 入力ストリームを渡し、指定されたファイルを読み込み、Excel オブジェクト (ワークブック) を作成します。
        XSSFWorkbook Excel = 新しい XSSFWorkbook(新しい FileInputStream(新しい File("E:\\testNomal\\poi.xlsx")));
        //Excel ファイルの最初のシート タブを読み取ります XSSFSheet sheet = excel.getSheetAt(0);
        //現在のワークシートの最後の行の行番号を取得します。行番号は 0 から始まります int lastRowNum = sheet.getLastRowNum();
        System.out.println("lastRowNum: "+lastRowNum);
        for(int i=0;i<=lastRowNum;i++){
            //行番号に従って各行を取得します XSSFRow row = sheet.getRow(i);
            //現在の行の最後のセルのインデックスを取得します。short lastCellNum = row.getLastCellNum();
            System.out.println("lastCellNum: "+lastCellNum);
            for(short j=0;j<lastCellNum;j++){
                //セルインデックスに基づいてセルの内容を取得します。String value = row.getCell(j).getStringCellValue();
                System.out.println(値);
            }
        }
        //Excel ファイルを閉じますexcel.close();
    }
}

ここに画像の説明を挿入

入門テスト(Excel ファイルへのデータの書き込み)

テストコード:

//POI を使用して Excel ファイルにデータを書き込み、作成された Excel ファイルを出力ストリームを通じてローカル ディスクに保存します //@Test
    パブリックvoid test3()は例外をスローします{
        //メモリ内にExcelファイル(ワークブック)を作成する
        XSSFWorkbook Excel = 新しい XSSFWorkbook();
        // POI write test という名前のワークシート オブジェクトを作成します。XSSFSheet sheet = excel.createSheet("POI write test");
        //ワークシートに行オブジェクトを作成し、最初の行に XSSFRow を作成します。title = sheet.createRow(0);
        //行にセル オブジェクトを作成します。title.createCell(0).setCellValue("Name"); //最初の列の内容 title.createCell(1).setCellValue("Address");
        title.createCell(2).setCellValue("年齢");

		// 2行目にXSSFRowを作成します。dataRow = sheet.createRow(1);
        dataRow.createCell(0).setCellValue("シャオミン");
        dataRow.createCell(1).setCellValue("北京");
        dataRow.createCell(2).setCellValue("20");

        //出力ストリームを作成し、出力ストリームを介してメモリ内の Excel ファイルをディスクに書き込みます。FileOutputStream out = new FileOutputStream(new File("e:\\hello.xlsx"));
        excel.write(out);//書き込み out.flush();//更新 excel.close();
    }

ここに画像の説明を挿入

Apache POI の基本的な使い方についてはこれで終了です。Apache POI の使い方についてさらに詳しく知りたい方は、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Apache POI は PPT を画像に変換するサンプル コードです
  • Apache Poi をベースにテンプレートに従って Excel をエクスポートする実装方法
  • Java Apache POI を使用して Word 文書のサンプル コードを生成する
  • JavaバックエンドはApache poiを使用してExcelドキュメントを生成し、フロントエンドのダウンロード例を提供します。
  • Java Apache poi は Word ドキュメント ファイルの読み取りと書き込みを行います
  • Apache POI ライブラリを使用して Excel スプレッドシート ドキュメントを読み取る Java の例
  • Apache POI を使用して Java で Word ファイルを読み取る簡単な例

<<:  CSS3は、変換変形とイベントを組み合わせて扇形のナビゲーションを完成させます。

>>:  HTMLはマウスをホバーしたときにテキストを表示するためにtitle属性を使用します。

推薦する

.Net Core を使用して数千万のデータを MySQL にインポートする手順

目次事前準備実施方法: 1. 単一のデータを挿入する2. マージデータ挿入3. MySqlBulkL...

MySQL で最大接続数を正しく変更する 3 つの方法

MySQL データベースをインストールすると、デフォルトの MySQL データベースの最大接続数が ...

ECMAScript6 におけるマップマッピングの基本概念と一般的な方法

目次マッピングとは何かオブジェクトとマップの違いマップの共通メソッド宣言と初期化割り当てセットキー値...

MySQL 5.7.17 でパスワードを忘れた場合の対処方法

1. my.iniファイルにskip-grant-tablesを追加し、MySQLサーバーを再起動し...

Centos7 に mysql と mysqlclient をインストールする際に遭遇する落とし穴の概要

1. MySQL Yumリポジトリを追加するMySQL公式サイト>ダウンロード>MySQ...

CSSの4種類の配置の違いの詳細な説明

フロントエンド開発でよく使われるCSSの配置方法は、位置決めには、通常位置決め、相対位置決め、絶対位...

Ubuntu mysqlログイン名とパスワードを表示および変更し、phpmyadminをインストールする

MySQLをインストールした後、ターミナルでmysql -u root -pと入力してEnterを押...

MySQL Undo ログと Redo ログの概要

目次元に戻すログUNDOログの生成と破棄UNDOログの保存元に戻すログ機能トランザクションの原子性の...

ベスト HTML/CSS デザインおよび開発フレームワーク 15 選を紹介します

プロフェッショナルな Web デザインは複雑で時間がかかります。 HTML と CSS フレームワー...

フォアマン Ubuntu16 クイックインストール

クイックスタートガイドForeman インストーラーは、完全に機能する Foreman セットアップ...

ネイティブJSが様々なスポーツの均一な動きを実現

この記事では、ネイティブ JS で実装された均一なモーションを紹介します。その効果は次のとおりです。...

MySQL SQL ステートメント分析とクエリ最適化の詳細な説明

パフォーマンスの問題のあるSQL文を取得する方法1. ユーザーからのフィードバックを通じてパフォーマ...

ホバー画像のポップアウトポップアップ効果を実現するための純粋な CSS のサンプルコード

実施原則メイングラフィックは、背景と前景の 2 つの要素で構成されています。次のサンプルコードでは、...

JavaScript で Priority Queue を実装する

目次1. 優先キューの紹介2. 優先キューのカプセル化1. 優先キューの紹介通常のキューに要素が挿入...

CSS スタイルの優先順位はどれくらい複雑ですか?

昨晩、面接の質問を見ていたら、CSS スタイルの優先順位について特に明確に説明していない人が何人かい...