エクスポートExcelスプレッドシートのポイ

 

コードのフロントセクション

//导出按钮
<a class="btn btn-app" onclick="exportExcel(${applyParticipants.get(0).cid})"> <クラス= "FA FA-編集" I> </ I>导出エクセル</a>の

// JSコード部分(のみのジャンプを行うには)
ます。<script type = "text / JavaScriptを">
//エクスポートExcelの
機能exportExcel(CID){
    //ゴータブ開くため
window.location.href =「toSignUpを?/エクスポートCID =「CID +;
}
</ SCRIPT>

背景コードセクション

//コントローラ層
/ ** 
* @description
*エクスポート機能
*エクセル作成
luying @author *を
*
* /

@ RequestMapping(値= "/エクスポート")
@ResponseBody
ます。public voidエクスポート(リクエストのHttpServletRequest、HttpServletResponseの応答、整数CID)は例外{スロー
試し
{
ExcelUtilを=新しい新しいexcelUtil excelUtil();
      //列名は、データのテーブルの最初の行優れ
、文字列[] rowsName = {「ID」、「名前」、「登録型」、「ID番号」「チームコンタクトか」 「電話」、「場所」、「作業単位」と「納税者番号」、「作業単位」、「電子メール」};
      //コレクションを作成し、データの収集は、Excelで表示されるように格納された
リスト<オブジェクト[]> dataCode0 =新規のArrayList <オブジェクト[]>();
=新しい新しいApplyParticipants zjgl ApplyParticipants();
      // SQL文はデータによって要求されます
リスト<ApplyParticipants> applyList = toSignUpService.selectPersonMessageByPrimaryKey(CID)、
IF(!= NULL && dbDatas dbDatas.isEmpty()){
            //初期化オブジェクト[]配列
オブジェクト[] = AB&NULL;
            // forループ、applyListでオブジェクト[]アレイにデータ
{(applyList applyParticipantsのapplyParticipants)のため
、AB&=新しい新しいオブジェクト[11]
AB&[0] = applyParticipants.getPid();
AB&[1] = applyParticipants.getPname();
AB&[2] applyParticipants.getTeamcontact =();
AB&[3] = applyParticipants.getRegistrationtypes();
[4]&AB = applyParticipants.getIdnum()。
AB&= applyParticipants.getPhone()[5]、
[6]、AB&= applyParticipants.getArea()
              はデータがありません表示されていない場合//ない空は、(のisEmpty会社自体カプセル化方式)を決定する
(applyParticipants.getWorkunits(IF )== NULL || applyParticipants.getWorkunits()のisEmpty()){
AB&[7] = "NO";
} {他
[7] AB&= applyParticipants.getWorkunits();
}

IF(applyParticipants.getRatepayer()=ヌル=){
AB&[8] = "NO";
}他{
AB&[8] = applyParticipants.getRatepayer();
}
(applyParticipants.getJob()== NULL || applyParticipants.getJob()のisEmpty()){IF
AB&[9] = "いいえ";
}他{
AB&[9] = applyParticipants.getJob();
}
IF( 。applyParticipants.getEmail()== NULL || applyParticipants.getEmail()のisEmpty()){
AB&[10] = "NO";
}他{
AB&[10] = applyParticipants.getEmail();
}
              //データ[] ABは、リストの<Object []> dataCode0に配置されたオブジェクト
dataCode0.add(AB&);
}
}
      //定義テーブル名
文字列のタイトル= "個人情報テーブルの登録内容";
      //定義ファイル名の
文字列filename =新しい文字列( "個人情報登録テーブルの詳細.XLS" .getBytes( "UTF-8")、 "UTF-8");
       // exportExcelでexcelUtilに入る()メソッド
excelUtil.exportExcel(タイトル、rowsName、dataCode0、ファイル名、応答);
}
キャッチ(にUnsupportedEncodingException E)
{
e.printStackTrace();
}
}

//使用されるツールのexcelUtil.class(これコンクリートが判決に使用した場合の情報)は、変更する必要はないように思えます

com.jusfoun.uums.utilパッケージ;

インポートorg.apache.poi.hssf.usermodel * ;.

インポートするjavax.servlet.http.HttpServletResponse;
インポートにjava.io.OutputStream;
インポートjava.io.UnsupportedEncodingException;
java.utilのインポートクラス。一覧;

//読み込みにjava.io.OutputStream;
//インポートjava.io.UnsupportedEncodingException;
//インポートするjavax.servlet.http.HttpServletResponse;

/ **
*
*
*
* @authorのWXY
* @version [バージョン番号、2019 2月1日]
* /
publicクラスExcelUtil
{
/ **
*輸出エクセル
* @paramタイトルタイトルエクスポートテーブル
* @paramの列名は、エクスポートテーブルをrowsName
* @param DataListのデータをエクスポートする必要があります
* @paramファイル名生成エクセル文件的文件名
* @param応答
* /
公共ボイドexportExcel(文字列のタイトル文字列[] rowsName、リスト<オブジェクト[]>データリスト、文字ファイル名、HttpServletResponseの応答)
{
//创建HSSFWorkbookは
//响应到客户端
{試みる
HSSFWorkbookのWB = this.export(タイトル、rowsName、データリスト、ファイル名)。
this.setResponseHeader(応答ファイル名)。
OutputStreamのOS = response.getOutputStream()。
wb.write(OS)。
os.flush();
os.close();
}キャッチ(例外e){
e.printStackTrace();
}
}

公共ボイドsetResponseHeader(HttpServletResponseの応答、文字列filename)
{
しようと
{
しようと
{
ファイル名は=新しい文字列(fileName.getBytes()、 "ISO8859-1");
}
キャッチ(にUnsupportedEncodingException電子)
{
e.printStackTrace();
}
response.setContentType( "アプリケーション/オクテットのストリーム;のcharset = UTF-8");
response.setHeader( "コンテンツの廃棄"、 "添付ファイル;ファイル名=" + filename)で。
response.addHeader( "Pargam"、 "キャッシュなし")。
response.addHeader( "のCache-Control"、 "

キャッチ(例外EX)
{
ex.printStackTrace();
}
}

/ *
*エクスポートデータ
* /
プライベートHSSFWorkbookエクスポート(タイトル文字列、文字列[] rowName、リストデータリスト、文字列filename <[] object>)を
例外がスロー
{

HSSFWorkbookブック=新しいHSSFWorkbook(); //ワークブックを作成するには、オブジェクト
HSSFSheetシート= workbook.createSheet(タイトル); // ワークシートを作成します
int型columnNum = rowName.length; //列の必要な数を定義
HSSFRow rowRowName = sheet.createRow(0); //インデックス位置0に行(先頭行)を作成
//カラムヘッドを細胞シートに設けられている
ため(N-INT = 0; N- <columnNum; N - ++)
{
HSSFCell cellRowName = rowRowName.createCell(N); //は、 列ヘッダーセルの対応する数作成
cellRowName.setCellType(HSSFCell.CELL_TYPE_STRINGを); //設定列ヘッダーセルがデータ型
HSSFRichTextStringテキスト=新しいHSSFRichTextString(rowName [ N] );
cellRowName.setCellValue(テキスト); //列ヘッダ・セルの値を設定
}

//対応するセルシートに設定データ照会
のための(INT i = 0; iが dataList.sizeを(<); iは++
{
[] OBJ = dataList.get(I)のオブジェクト; //各オブジェクト反復
HSSFRow行を= sheet.createRow(I + 1 ); // 行の必要な数を作成し
(INT J = 0; J <OBJ .LENGTH; J ++)
{
HSSFCellセル= NULL; //セルのデータタイプを設定
IF(J == 0)
{
= row.createCellセル(J、HSSFCell.CELL_TYPE_NUMERIC);
cell.setCellValueは、(I + 1);
}

{
細胞row.createCell =(J、HSSFCell.CELL_TYPE_STRING);
!。IF( ""に等しい(OBJ [J] !)OBJ && [J] = NULL)
{
cell.setCellValue(OBJ [J] .toString()); //セルの値を設定
}
}
}
}

//長い列列幅ように誘導された自動適合を有する
ため(colNum引数INT = 0; colNum引数<columnNum; colNum引数++)
{
int型= sheet.getColumnWidth columnWidthの(colNum引数)/ 256。
用(;たrowNum <sheet.getLastRowNum(); INTたrowNum = 0たrowNum ++)
{
HSSFRow currentRowの。
//当前行未被使用过
IF(sheet.getRow(たrowNum)== NULL)
{
currentRowの= sheet.createRow(たrowNum)。
}

{
currentRowの= sheet.getRow(たrowNum)。
}
IF(!currentRow.getCell(colNum引数)= NULL)
{
HSSFCell currentCell = currentRow.getCell(colNum引数)。
IF(currentCell.getCellType()== HSSFCell.CELL_TYPE_STRING)
{
INT長= currentCell.getStringCellValue()GetBytesメソッド()の長さ。。。
(columnWidthの<長さ)であれば
{
columnWidthの長さ=。
}
}
}
}
もし(colNum引数== 0)
{
sheet.setColumnWidth(colNum引数、(columnWidthの- 2)×256)。
}

{
sheet.setColumnWidth(colNum引数、(columnWidthの+ 4)×256)。
}
}
ブックを返します。
}
}
 

おすすめ

転載: www.cnblogs.com/luYing666/p/11590556.html