Java は Apache.POI を使用して HSSFWorkbook を Excel にエクスポートします

Java は Apache.POI を使用して HSSFWorkbook を Excel にエクスポートします

Apache.POI の HSSFWorkbook を使用して Excel にエクスポートします。具体的な内容は次のとおりです。

1. Poi依存関係を導入する(3.12)

依存関係は次のとおりです。

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

2. エンティティクラス(User.java)を作成する

パッケージ com.kd.nm.entity.pojo;

/**
 * エンティティクラス (ユーザー)
 *
 *著者 小晨歌歌*/
パブリッククラスUser{
 // ユーザー番号 private String userNo;
 //ユーザー名private String userName;
 //年齢private String age;

 // パラメータ構築なし public User() {
 }

 // パラメータを持つコンストラクタ public User(String userNo, String userName, String age) {
  this.userNo = ユーザーNo;
  this.userName = ユーザー名;
  this.age = 年齢;
 }

 // getメソッドとsetメソッドをカプセル化する public String getUserNo() {
  ユーザー番号を返します。
 }

 パブリック void setUserNo(String userNo) {
  this.userNo = ユーザーNo;
 }

 パブリック文字列 getUserName() {
  ユーザー名を返します。
 }

 パブリックvoid setUserName(文字列userName) {
  this.userName = ユーザー名;
 }

 パブリック文字列getAge() {
  年齢を返す;
 }

 パブリック void setAge(文字列 age) {
  this.age = 年齢;
 }

 //toString メソッドを書き換える @Override
 パブリック文字列toString() {
  "User{" を返す +
    "userNo='" + userNo + '\'' +
    ", ユーザー名='" + ユーザー名 + '\'' +
    "、年齢='" + 年齢 + '\'' +
    '}';
 }
}

3.Excel関連ツールクラス(ExcelUtil、ReflectUtil)

パッケージ com.kd.nm.util;

java.util.ArrayList をインポートします。
java.util.List をインポートします。
java.util.Map をインポートします。
org.apache.poi.hssf.usermodel.* をインポートします。

/**
 * 説明: Excel 関連ツール*
 * @著者: シャオチェン兄弟*
 */
パブリッククラス ExcelUtil {

 /**
  * Excel テーブルを生成* @param heads ヘッダー コンテンツ* @param data データ コンテンツ* @return
  */
 パブリック静的 HSSFWorkbook createExcel(Map<String, String> ヘッド、リストデータ) {

  // ワークブックを宣言します HSSFWorkbook workbook = new HSSFWorkbook();
  // テーブルを生成します HSSFSheet sheet = workbook.createSheet();

  // タイトル行スタイルを生成します HSSFCellStyle headStyle = creatStyle(workbook, (short) 14);

  // テーブル コンテンツ スタイルを生成します HSSFCellStyle bodyStyle = creatStyle(workbook, (short) 10);

  // タイトル要素 List<String> keys = new ArrayList<String>(heads.keySet());

  // ピクセル単位 short px = 1000;
  // 列幅を設定する for (int columnIndex = 0; columnIndex < keys.size(); columnIndex++) {

   sheet.setColumnWidth(列インデックス、6 * px);
  }

  // テーブルを生成 for (int rowNum = 0; rowNum <= data.size(); rowNum++) {

   // 行を作成 HSSFRow row = sheet.createRow(rowNum);

   (int cellNum = 0; cellNum < keys.size(); cellNum++) の場合 {

    // 列を作成します HSSFCell cell = row.createCell(cellNum);

    // タイトル if (rowNum == 0) {

     セルスタイルを設定します。
     cell.setCellValue(heads.get(keys.get(cellNum)));
    } else { // コンテンツ cell.setCellStyle(bodyStyle);
     // reflection.setCellValue(ReflectUtil.getValue(keys.get(cellNum), data.get(rowNum - 1))); を通じてセルを取得します。
    }
   }
  }

  ワークブックを返します。
 }

 /**
  * スタイルを生成 * @param workbook
  * @param サイズ
  * @戻る
  */
 パブリック静的 HSSFCellStyle creatStyle(HSSFWorkbook ワークブック、ショートサイズ) {

  HSSFCellStyle スタイル = workbook.createCellStyle();
  style.setAlignment((HSSFCellStyle.ALIGN_CENTER));
  style.setVerticalAlignment((HSSFCellStyle.VERTICAL_CENTER));
  HSSFFont フォント = workbook.createFont();
  font.setFontHeightInPoints(サイズ);
  font.setFontName("Microsoft YaHei");
  style.setFont(フォント);
  style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
  style.setBorderTop(HSSFCellStyle.BORDER_THIN);
  style.setBorderRight(HSSFCellStyle.BORDER_THIN);
  style.setBorderLeft(HSSFCellStyle.BORDER_THIN);

  戻りスタイル;
 }
}
パッケージ com.kd.nm.util;

org.slf4j.Logger をインポートします。
org.slf4j.LoggerFactory をインポートします。
org.springframework.util.ReflectionUtils をインポートします。
java.beans.PropertyDescriptor をインポートします。
java.lang.reflect.Method をインポートします。

/**
 * リフレクションツールキット*
 * @著者: 小晨兄弟*/
パブリッククラスReflectUtil {

 プライベート静的最終 Logger ロガー = LoggerFactory.getLogger(ReflectUtil.class);

 パブリック静的文字列 getValue(文字列キー、オブジェクト obj) {

  文字列値 = "";

  試す {

   // 現在のプロパティを取得します。PropertyDescriptor pd = new PropertyDescriptor(key, obj.getClass());
   // get メソッドを取得します。Method getMd = pd.getReadMethod();
   値 = getMd.invoke(obj).toString();
  } キャッチ (例外 e) {

   logger.error("コンテンツの取得に失敗しました!");
   e.printStackTrace();
  }

  戻り値;
 }

 パブリック静的void setValue(文字列キー、文字列値、オブジェクトobj) {

  試す {

   // 現在のプロパティを取得します。PropertyDescriptor pd = new PropertyDescriptor(key, obj.getClass());
   // 設定されたメソッドを取得します。Method writeMd = pd.getWriteMethod();
   書き込みMd.invoke(obj, 値);
  } キャッチ (例外 e) {

   logger.error("コンテンツの設定に失敗しました!");
   e.printStackTrace();
  }
 }
}

4. バックエンドコントローラコード

@RequestMapping(値 = "/exportExcel",メソッド = RequestMethod.GET,生成 = "application/json")
 パブリック void exportExcel(HttpServletResponse httpServletResponse) は IOException をスローします {

  // ヘッダーコンテンツ(フロントエンドで設定し、パラメータで渡すことができます)キーはエンティティクラスの属性値、値はヘッダーのラベルです
  Map<String,String> ヘッド = new HashMap<>();
  head.put("userNo","ユーザー番号。");
  head.put("userName","ユーザー名");
  head.put("年齢","年齢");

  // テーブル データ コンテンツ。データベースからクエリされたデータをシミュレートします。List<User> data = new ArrayList<>();
  data.add(new User("1","Little Chenの弟","18"));
  data.add(新しいユーザー("2","リトル・ピギー・シスター","18"));
  data.add(新しいユーザー("3","ビッグピッグブラザー","18"));
  
  
  // ワークブックを生成 HSSFWorkbook hssfWorkbook = ExcelUtil.createExcel(head, data);

  // ファイル名を定義します String fileName = "Excel テーブルのエクスポート";

  httpServletResponse.setHeader("Cache-Control", "max-age=0");
  httpServletResponse.setContentType("application/vnd.ms-excel");
  httpServletResponse.addHeader("Content-disposition", "attachment;filename=" + new String(fileName.getBytes("gb2312"),
    "ISO-8859-1") + ".xls");

  出力ストリーム outputStream = httpServletResponse.getOutputStream();

  hssfWorkbook.write(出力ストリーム);
  出力ストリームをフラッシュします。
  出力ストリームを閉じます。
 }

5. マッピングされたアドレスにアクセスする

インターフェースアクセス:

http://localhost:9090/FaultTreatment/api/standard/exportExcel

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

Apache.POI を使用して Java で HSSFWorkbook を Excel にエクスポートする実装方法については、これで終わりです。Apache.POI で HSSFWorkbook を Excel にエクスポートする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JavaアプリケーションEasyExcelツールクラス
  • Alibaba のオープンソース技術 EasyExcel を使用して Java で Excel テーブルを操作するためのサンプル コード
  • JavaはeasyExcelを使用してExcelデータをエクスポートします
  • Javaを使用してExcelデータをMySQLにインポートする方法を教えます
  • Excel に透かしを追加する Java (単一の透かし、タイル状の透かし)
  • JavaでExcelを素早くエレガントにエクスポートする方法
  • Java の Easypoi は Excel の複数シートのインポートとエクスポート機能を実装します
  • JavaはシンプルなExcelの一般的なツールクラスを読み取ります
  • poi を使用して Excel データをデータベースにインポートする Java の手順
  • JavaはEasyExcelを使用してExcelをインポートおよびエクスポートします

<<:  ハイパーコネクションの4つの状態の適用の詳細な説明

>>:  JS配列重複排除の詳細

推薦する

Vue印刷機能を実装する2つの方法の概要

方法1: npm経由でプラグインをインストールする1. npm install vue-print-...

Linux 時間サブシステムの時間表現例の詳細な説明

序文Linux カーネルでは、元のコードとの互換性を保つため、または特定の仕様に準拠するため、また現...

vue-video-player を使用してライブ放送を実現する方法

目次1. vue-video-playerをインストールする2. vue-video-playerを...

MySQL 5.7 をバイナリモードでインストールし、Linux でシステムを最適化する手順

この記事では主に、MySQL バイナリ パッケージのインストール/起動/シャットダウンのプロセスを紹...

HTTPSの最も優れた説明

皆さんおはようございます。しばらく記事を更新していませんでした。実は、私は流行中に1か月以上家にいて...

Docker ネットワークの原理とカスタム ネットワークの詳細な分析

Docker はホストマシン上のブリッジを仮想化します。コンテナを作成して起動すると、各コンテナには...

フォント宝庫 50 種類の素晴らしい無料英語フォントリソース パート 1

デザイナーは独自のフォント ライブラリを持っているため、プロジェクトの設計時にすぐに使用できます。今...

Windows に Docker をインストールする詳細なチュートリアル

ローカルの MySQL バージョンが比較的低いため、最近 MySQL のバージョンをアップグレードす...

MySQL における楽観的ロックと悲観的ロックの例

データベース管理システムにおける同時実行制御のタスクは、データベース内の同じデータに同時にアクセスす...

Windows10システムにMySQL 5.7.17をインストールする

オペレーティング システム win10 MySQL は、公式 Web サイトからダウンロードした 6...

React 合成イベントの説明

目次入力ボックスをクリックして開始します拡張機能入力ボックスをクリックすると複数のイベントが発生しま...

Nginx リバースプロキシの例の詳細な説明

1. リバースプロキシの例1 1. 効果を達成する(1)ブラウザを開き、www.123.comと入力...

フロントエンド開発者は毎日HTMLタグの理解を学ばなければならない(1)

2.1 セマンティクス化により、Webページが検索エンジンに理解されやすくなりますこの章では、We...

Vue3 における ref と reactive の詳細な説明と拡張

目次1. 参照と反応1. 反応的2.参照2. shallowRef と shallowReactiv...

カルーセルの制作方法を実現するjs

この記事では、カルーセル画像の表示を実現するためのjsの具体的なコードを参考までに共有します。具体的...