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

推薦する

Zabbix で複数の JVM プロセスを監視する方法

1. シナリオの説明:私たちの環境ではマイクロサービスを使用しています。各プログラムには個別のプロセ...

Mailtoを使えばHTMLでメールを送るのは簡単

最近、顧客のフッターメールボックスにクリックして送信するメール機能を追加しました。Baidu で検索...

MySQL における大規模オブジェクトのマルチバージョン同時実行制御の詳細な説明

MySQL 8.0: InnoDB のラージ オブジェクトに対する MVCCこの記事では、MySQL...

画像のプリロードと遅延ロードを実装するJavaScript

この記事では、JavaScriptで画像のプリロードと遅延ロードを実装するための具体的なコードを参考...

Reactにおけるコンポーネント通信の詳細な説明

目次親コンポーネントは子コンポーネントと通信します子コンポーネントは親コンポーネントと通信しますコン...

CSS中級者向けアダプティブレイアウトの5つのソリューションの詳細な説明

序文ページを作っていく上で、ページレイアウトに関する内容に遭遇することが多く、面接でも聞かれることも...

CSS3+JS による虫眼鏡モードの完璧な実装の詳細説明

約 1 年前、私は「虫眼鏡効果を模倣するいくつかの方法の原理の分析」という記事を書きました。当時、自...

Linux での Firewalld の高度な設定の使用に関する詳細な説明

IPマスカレードとポート転送Firewalldは2種類のネットワークアドレス変換をサポートしています...

Navicat を使用して MySQL データベースをエクスポートおよびインポートする方法

MySql は、私たちが頻繁に使用するデータ ソースです。開発者が練習、小規模なプライベート ゲーム...

IE6 の iframe の水平スクロール バーの解決策

状況は以下のとおりです: (PS: 赤いボックスは iframe 領域を表し、灰色の四角形は上記の ...

JavaScript オブジェクトからプリミティブ値への変換の詳細な説明

目次オブジェクトプロトタイプの値()オブジェクトプロトタイプtoString()シンボル.toPri...

nginx サーバーでの 502 不正なゲートウェイ エラーの原因のトラブルシューティング

パブリックアカウントのファンデータを同期してバッチプッシュするときに、サーバーがエラー502を報告し...

Nginx 急ぎ購入 電流制限構成 実装分析

ビジネス上のニーズにより、急ぎの購入が発生することが多いため、ロード バランシング フロント エンド...

MySQL学習データベース検索文DQL小百章

目次1. データの簡単な取得2. データの並べ替えと取得2.1. 基本構文2.2. ソート方向を指定...

jQueryカルーセル機能を実装する方法

この記事では、jQueryカルーセル機能の実装コードを参考までに共有します。具体的な内容は次のとおり...