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配列重複排除の詳細

推薦する

etcd クラスターをデプロイするための docker-compose の実装手順

目次docker-compose.ymlを書くdocker-composeを実行するビルドステータス...

JSはクリックドロップ効果を実装します

jsはクリックとドロップの特殊効果を実現します。まずは効果画像を見てみましょうさっそく始めましょう。...

MySQL 5.5 の導入に関する問題

MySQL の導入現在、会社ではプラットフォーム運用を通じてMySQLを導入しています。金曜日、プラ...

初心者向け入門チュートリアル⑨:ポータルサイトの構築方法

さらに、ブログ プログラムで構築された記事 Web サイトは常にブログのように見え、カスタマイズでき...

CSSアニメーションとSVGを組み合わせてエネルギーの流れの効果を作成する

最終的な効果は次のようになります。アニメーションは2つのステップに分かれていますランニング軌道を開発...

nginxリバースプロキシのマルチポートマッピングの実装

コードの説明1.1 http:www.baidu.test.com のデフォルトは 80 で、リバー...

よくある CSS エラーと解決策

コードをコピーコードは次のとおりです。 IE6 と FF の違い: background:orang...

ポータルサイトのフォーカス画像のデザインに関するいくつかの結論

フォーカス画像は、画像、テキスト、動的なインタラクティブ効果を統合したコンテンツを表示する方法です。...

JSはモバイル端末の画面を1つずつ上下にスライドさせる機能を実装します

この記事では、モバイル端末を一度に1画面ずつ上下にスライドさせるためのJSの具体的なコードを参考まで...

mysql 5.7.18 winx64 無料インストール設定方法

1. ダウンロード2. 減圧3. パス環境変数を追加し、mysqlが配置されているbinディレクトリ...

サーバーストレステストの概念と方法 (TPS/同時実行性)

目次1 ストレステストの指標1.1 秒あたり1.2 クォータ1.3 平均処理時間(RT) 1.4 同...

Apache Bench ストレステストツールの実装原理と使用状況分析

1: スループット(1秒あたりのリクエスト数)サーバーの同時処理能力を定量的に表したもので、reqs...

Docker は Python Flask+ nginx+uwsgi コンテナを構築します

Nginxをインストールするまずcentosイメージをプルしますdocker pull centos...

Linux での MySQL のアンインストールとインストールのグラフィック チュートリアル

ブログを書くのは初めてです。開発に携わって2年になります。仕事の後に何か有意義なことを見つけたいと思...

純粋な CSS を使用してドロップダウン メニューを作成するサンプル コード

導入:最近の面接の質問を見ると、ドロップダウン メニューを実装するために CSS を使用することが多...