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

推薦する

Vue3.0はドロップダウンメニューのカプセル化を実装します

Vue3.0 がリリースされてからしばらく経ちましたが、勉強を始める必要があります。まず、達成したい...

MySQLクエリ最適化分析チュートリアルをステップバイステップで教えます

序文MySQL は、強力なクエリ機能、高いデータ一貫性、高いデータ セキュリティ、およびセカンダリ ...

MySQL のロック待機とデッドロック問題の分析

目次序文: 1. ロック待機とデッドロックを理解する2. 現象の再発と治療要約:序文: MySQL ...

フロア効果を実現するためのJavaScript

この記事では、フロア効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します。...

時点に基づくMySQLクイックリカバリソリューション

なぜこのような記事を書いたかというと、数日前の夜、仕事が終わろうとしていたときに、業務側で突然、テー...

Vueはソースコード付きのリファレンスライブラリのメソッドを使用します

monaco-editor-vueの公式ソースコードは次のとおりです。インデックス 'mon...

WeChatアプレットは水平および垂直スクロールを実現

この記事の例では、WeChatアプレットの水平スクロールと垂直スクロールを実現するための具体的なコー...

Vue データの応答性の概要

データの応答性について話す前に、Vue はデータに対して具体的に何を行うのかという非常に重要な問題を...

Centos8 の Django プロジェクトに nginx+uwsgi をデプロイするチュートリアル

1. 仮想環境virtualenvのインストール1. virtualenvをインストールするpip3...

k8s に ingress-nginx をデプロイする手順

目次序文1. Ingressの展開と構成2. httpsを使用する序文k8sクラスタサービスがデプロ...

ElementuiはデータをxlsxとExcelテーブルにエクスポートします

最近、Vue プロジェクトについて知り、ElementUI でデータを xlsx および Excel...

Linux のハードリンクとソフトリンクの区別

Linux には、2 種類のファイル接続があります。1 つは Windows のショートカットに似て...

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

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

Windows での MySQL 5.7.20 のインストールと設定方法のグラフィック チュートリアル

参考までにWindowsにMySQLをインストールします。具体的な内容は次のとおりです。 1.まずM...