Spring 使用POI匯出Excel並生成下拉選項
在開發中我們經常會用到生成excel,下面是spring專案前後端分離匯出excel工具類,介面中直接引用即可。
首先引入poi-jar包:
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.14</version> </dependency>
ExcelPoiUtil:
import java.util.List; import org.apache.poi.hssf.usermodel.DVConstraint; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFDataValidation; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.ss.usermodel.IndexedColors; import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddressList; public class ExcelPoiUtil { /** * * @param fileName 檔名稱 * @param sheetName sheet頁名稱 * @param titleList 列名 * @param titleCodeList 列名對應的code * @param parpamtsList 可選擇引數列(需與列名一比一) */ public static HSSFWorkbook createExcel(String fileName,String sheetName,List<String> titleList,List<String> titleCodeList,List<List<String>> parpamtsList) { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = setSheetBaseInfoExcel(sheetName,36,30,wb); //設定前三行凍結 sheet.createFreezePane(0,3,0,3); //此處是設定 第一行 合併單元格的個數(標題行) sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, (titleList.size()-1))); // 產生表格標題行 HSSFRow rowm = sheet.createRow(0); HSSFCell cellTiltle = rowm.createCell(0); HSSFCellStyle columnTopStyle = getColumnTopStyle(wb);//獲取列頭樣式物件 cellTiltle.setCellStyle(columnTopStyle); cellTiltle.setCellValue(sheetName); rowm.setHeightInPoints(25); //隱藏第二行,並填寫code值 HSSFRow row_titleCode = sheet.createRow(1); for(int i=0;i<titleCodeList.size();i++) { HSSFCell cellTiltleCode = row_titleCode.createCell(i); cellTiltleCode.setCellValue(titleCodeList.get(i)); } row_titleCode.setZeroHeight(true); //設定第三行標題 標題列 HSSFRow row_titleName = sheet.createRow(2); HSSFCellStyle style = getStyle(wb); for (int i=0;i<titleList.size();i++){ HSSFCell cell_titleName = row_titleName.createCell(i); cell_titleName.setCellValue(titleList.get(i)); cell_titleName.setCellStyle(style); } //設定預設下拉內容 if(parpamtsList!=null && parpamtsList.size()>0) { for(int i=0;i<parpamtsList.size();i++) { if(parpamtsList.get(i)==null || parpamtsList.get(i).size()<1) { continue; } //設定下拉控制的範圍 CellRangeAddressList regions = new CellRangeAddressList(3, 999, i, i); // 生成下拉框內容 String[] strings = new String[parpamtsList.get(i).size()]; parpamtsList.get(i).toArray(strings); DVConstraint constraint = DVConstraint.createExplicitListConstraint(strings); // 繫結下拉框和作用區域 HSSFDataValidation data_validation = new HSSFDataValidation(regions, constraint); // 對sheet頁生效 sheet.addValidationData(data_validation); } } return wb; } /**設計excel定義列數、列寬和標頭資訊*/ private static HSSFSheet setSheetBaseInfoExcel(String excelName,int columWith,int rowHight,HSSFWorkbook wb){ HSSFSheet sheet = wb.createSheet(excelName); sheet.setDefaultColumnWidth(columWith); sheet.setDefaultRowHeightInPoints(rowHight); // String columWiths[] = columWithMsg.split(","); // for (int i=0;i<columWiths.length;i++){ // sheet.setColumnWidth(i,Integer.valueOf(columWiths[i])*512); // } return sheet; } /* * 列表首頁的大title樣式 */ private static HSSFCellStyle getColumnTopStyle(HSSFWorkbook workbook) { // 設定字型 HSSFFont font = workbook.createFont(); //設定字型大小 font.setFontHeightInPoints((short)16); //字型加粗 // font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //設定字型名字 font.setFontName("Courier New"); //設定樣式; HSSFCellStyle style = workbook.createCellStyle(); //設定底邊框; // style.setBorderBottom(HSSFCellStyle.BORDER_THIN); //設定底邊框顏色; style.setBottomBorderColor(HSSFColor.BLACK.index); //設定左邊框; // style.setBorderLeft(HSSFCellStyle.BORDER_THIN); //設定左邊框顏色; style.setLeftBorderColor(HSSFColor.BLACK.index); //設定右邊框; // style.setBorderRight(HSSFCellStyle.BORDER_THIN); //設定右邊框顏色; style.setRightBorderColor(HSSFColor.BLACK.index); //設定頂邊框; // style.setBorderTop(HSSFCellStyle.BORDER_THIN); //設定頂邊框顏色; style.setTopBorderColor(HSSFColor.BLACK.index); //在樣式用應用設定的字型; style.setFont(font); //設定自動換行; style.setWrapText(false); //設定水平對齊的樣式為居中對齊; // style.setAlignment(HSSFCellStyle.ALIGN_CENTER); //設定垂直對齊的樣式為居中對齊; // style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); //設定背景顏色 // style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setFillForegroundColor(IndexedColors.PALE_BLUE.getIndex()); return style; } /* * 標題 列的樣式 */ private static HSSFCellStyle getStyle(HSSFWorkbook workbook) { // 設定字型 HSSFFont font = workbook.createFont(); //設定字型大小 font.setFontHeightInPoints((short)12); //字型加粗 // font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //設定字型名字 font.setFontName("Courier New"); //設定樣式; HSSFCellStyle style = workbook.createCellStyle(); //設定底邊框; // style.setBorderBottom(HSSFCellStyle.BORDER_THIN); //設定底邊框顏色; style.setBottomBorderColor(HSSFColor.BLACK.index); //設定左邊框; // style.setBorderLeft(HSSFCellStyle.BORDER_THIN); //設定左邊框顏色; style.setLeftBorderColor(HSSFColor.BLACK.index); //設定右邊框; // style.setBorderRight(HSSFCellStyle.BORDER_THIN); //設定右邊框顏色; style.setRightBorderColor(HSSFColor.BLACK.index); //設定頂邊框; // style.setBorderTop(HSSFCellStyle.BORDER_THIN); //設定頂邊框顏色; style.setTopBorderColor(HSSFColor.BLACK.index); //在樣式用應用設定的字型; style.setFont(font); //設定自動換行; style.setWrapText(false); //設定水平對齊的樣式為居中對齊; // style.setAlignment(HSSFCellStyle.ALIGN_CENTER); //設定垂直對齊的樣式為居中對齊; // style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); //設定背景顏色 // style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setFillForegroundColor(IndexedColors.LIGHT_CORNFLOWER_BLUE.getIndex()); return style; } }
相關推薦
Spring 使用POI匯出Excel並生成下拉選項
在開發中我們經常會用到生成excel,下面是spring專案前後端分離匯出excel工具類,介面中直接引用即可。首先引入poi-jar包: <dependency> <groupId>org.apache.poi</groupId&
Npoi匯出Excel並設定下拉選擇限制
/// <summary> /// 下載匯入資料地圖模板 /// </summary> /// <returns></returns> [HttpGet]
Java使用POI操作Excel並建立下拉框
java建立 package poiexcel; import java.io.FileOutputStream; import java.util.Date; import org
POI匯出帶級聯下拉框的excel
效果: 所需jar包: poi-3.8-20120326.jar demo: import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOExceptio
Java根據模板匯出Excel並生成多個Sheet
因為最近用報表匯出比較多,所有就提成了一個工具類,本工具類使用的場景為 根據提供的模板來匯出Excel報表 並且可根據提供的模板Sheet頁進行復制 從而實現多個Sheet頁的需求, 使用本工具類時,如果需求是每個Sheet頁中的資料都不一致,但是表格樣式和模板都一樣 那
整理POI解析資料和生成下拉框模板的例子
import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.poi.hssf
實際專案中使用poi匯出excel(spring+springMVC+Mybatis環境下)
1,需要匯出的原始資料.即根據實際需求查詢得到的結果集作為原始資料.可能是一個list,map...看你封裝成什麼樣了(這裡是封裝成list了) 2,將原始的資料轉換到excel中,具體根據資料形式不同,寫法也會不同.不過這些都是大同小異的. 3,將生產好的excel檔案寫到一個路徑下(這裡都是放到t
Excel的單元格設置下拉選項並填充顏色
bcd 同時 photos spf sel 菜單 完成 d3d -o 如何在Excel的單元格中加入下拉選項 方法/步驟 第一步:打開excel文檔,選中需加入下拉選項的單元格。 第二步:點擊菜單中的“數據”-&g
Spring Boot利用poi匯出Excel
public class ExcelData implements Serializable { private static final long serialVersionUID = 4444017239100620999L; // 表
使用exceljs匯出部門-職位聯動下拉框的excel
import { Workbook } from 'exceljs'; /////////////////////////////// const wb = new Workbook(); const ws = wb.addWorksheet('tb'); const d
poi批量匯入匯出Excel(三、通過模板匯出Excel並能實現匯入多個sheet表)
本專案基於SSM框架,簡單封裝了Excel批量匯入匯出功能,不用建資料庫表一鍵匯入匯出Excel,不過這樣只適用於對匯入的Excel表進行轉換,通過模板匯出Excel並且能實現匯入多個sheet表。上一篇介紹了建表匯入匯出Excel(點選跳轉)一、下載poi jar包:點這裡
使用poi 匯出Excel檔案 並解決中文名亂碼
使用poi 匯出Excel檔案 並解決中文名亂碼 第一種方法: @Action("subAreaAction_exportXLs") public String exportXLs() throws IOException{ List<SubArea>l
使用EXCEL設置“下拉菜單”選項功能
sphere data *** 選擇 bsp 分享 導入 體系 收獲 原創作品,出自 “深藍的blog” 博客,歡迎轉載。轉載時請務必註明出處,否則有權追究版權法律責任。 深藍的blog:http://blog.csdn.net/huangyanlong/article
菜鳥調錯——POI匯出Excel報錯No such file or directory
場景重現 Apache POI Linux Tomcat 如上所示,當時在linux+tomcat的環境下,使用apache的poi匯出excel的時候就會報“No such file or directory”的錯誤。 錯誤資訊 java.la
POI匯出excel表格優化
package com.ywj.excel; import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java
HSSFWorkbook(poi)匯出excel表格
本文與另一篇文章關聯: csv格式匯出excel報表 其中: String accountDate 入參(日期) AccountInfoEntityResp accountInfoEntityResp 匯出的xml報文內容(轉換成obj物件) xml報文解析見另一篇:x
java使用poi匯出excel例子
java匯出某個頁籤: 第一步:先在jsp新建一個匯出介面按鈕: <a id="export" class="mini-button" iconCls="icon-download" onclick="exportexcel();" plain="true">匯出</a>
Javaweb專案,簡單應用Apache POI匯出Excel的簡單例子
直接上程式碼: jsp: 說明:這裡使用ajax請求是會有問題的,會導致瀏覽器視窗不會彈出下載提示和選擇位址列的彈窗 //匯出 $('#btn-export').click(function () { location.href = "${pageContext.r
laravel匯出excel並設定單元格格式
$list = $this->recommend($request); $data = array(); foreach($list as $k=>$v){ $data[] = array_values($v); $len = count($v); } $header =
使用poi匯出excel檔案
一、獲取資料 private List<PmsrT2> getPmsrT2List(HttpServletRequest request) { try { &