java +Spring MVC +MyBatis 實現Excle 匯出
第一步:
package com.wlsq.kso.util; import org.apache.poi.hssf.usermodel.*; import java.io.FileOutputStream; import java.io.IOException; import java.util.Calendar; import java.util.List; import java.util.Map; /** * poi 匯出excel 工具類 */ public class POIUtil { /** * 1.建立 workbook * @return */ public HSSFWorkbook getHSSFWorkbook(){ return new HSSFWorkbook(); } /** * 2.建立 sheet * @param hssfWorkbook * @param sheetName sheet 名稱 * @return */ public HSSFSheet getHSSFSheet(HSSFWorkbook hssfWorkbook, String sheetName){ return hssfWorkbook.createSheet(sheetName); } /** * 3.寫入表頭資訊 * @param hssfWorkbook * @param hssfSheet * @param headInfoList List<Map<String, Object>> * key: title 列標題 * columnWidth 列寬 * dataKey 列對應的 dataList item key */ public void writeHeader(HSSFWorkbook hssfWorkbook,HSSFSheet hssfSheet ,List<Map<String, Object>> headInfoList){ HSSFCellStyle cs = hssfWorkbook.createCellStyle(); HSSFFont font = hssfWorkbook.createFont(); font.setFontHeightInPoints((short)12); font.setBoldweight(font.BOLDWEIGHT_BOLD); cs.setFont(font); cs.setAlignment(cs.ALIGN_CENTER); HSSFRow r = hssfSheet.createRow(0); r.setHeight((short) 380); HSSFCell c = null; Map<String, Object> headInfo = null; //處理excel表頭 for(int i=0, len = headInfoList.size(); i < len; i++){ headInfo = headInfoList.get(i); c = r.createCell(i); c.setCellValue(headInfo.get("title").toString()); c.setCellStyle(cs); if(headInfo.containsKey("columnWidth")){ hssfSheet.setColumnWidth(i, (short)(((Integer)headInfo.get("columnWidth") * 8) / ((double) 1 / 20))); } } } /** * 4.寫入內容部分 * @param hssfWorkbook * @param hssfSheet * @param startIndex 從1開始,多次呼叫需要加上前一次的dataList.size() * @param headInfoList List<Map<String, Object>> * key: title 列標題 * columnWidth 列寬 * dataKey 列對應的 dataList item key * @param dataList */ public void writeContent(HSSFWorkbook hssfWorkbook,HSSFSheet hssfSheet ,int startIndex, List<Map<String, Object>> headInfoList, List<Map<String, Object>> dataList){ Map<String, Object> headInfo = null; HSSFRow r = null; HSSFCell c = null; //處理資料 Map<String, Object> dataItem = null; Object v = null; for (int i=0, rownum = startIndex, len = (startIndex + dataList.size()); rownum < len; i++,rownum++){ r = hssfSheet.createRow(rownum); r.setHeightInPoints(16); dataItem = dataList.get(i); for(int j=0, jlen = headInfoList.size(); j < jlen; j++){ headInfo = headInfoList.get(j); c = r.createCell(j); v = dataItem.get(headInfo.get("dataKey").toString()); if (v instanceof String) { c.setCellValue((String)v); }else if (v instanceof Boolean) { c.setCellValue((Boolean)v); }else if (v instanceof Calendar) { c.setCellValue((Calendar)v); }else if (v instanceof Double) { c.setCellValue((Double)v); }else if (v instanceof Integer || v instanceof Long || v instanceof Short || v instanceof Float) { c.setCellValue(Double.parseDouble(v.toString())); }else if (v instanceof HSSFRichTextString) { c.setCellValue((HSSFRichTextString)v); }else { c.setCellValue(v.toString()); } } } } public void write2FilePath(HSSFWorkbook hssfWorkbook, String filePath) throws IOException{ FileOutputStream fileOut = null; try{ fileOut = new FileOutputStream(filePath); hssfWorkbook.write(fileOut); }finally{ if(fileOut != null){ fileOut.close(); } } } /** * 匯出excel * code example: List<Map<String, Object>> headInfoList = new ArrayList<Map<String,Object>>(); Map<String, Object> itemMap = new HashMap<String, Object>(); itemMap.put("title", "序號1"); itemMap.put("columnWidth", 25); itemMap.put("dataKey", "XH1"); headInfoList.add(itemMap); itemMap = new HashMap<String, Object>(); itemMap.put("title", "序號2"); itemMap.put("columnWidth", 50); itemMap.put("dataKey", "XH2"); headInfoList.add(itemMap); itemMap = new HashMap<String, Object>(); itemMap.put("title", "序號3"); itemMap.put("columnWidth", 25); itemMap.put("dataKey", "XH3"); headInfoList.add(itemMap); List<Map<String, Object>> dataList = new ArrayList<Map<String,Object>>(); Map<String, Object> dataItem = null; for(int i=0; i < 100; i++){ dataItem = new HashMap<String, Object>(); dataItem.put("XH1", "data" + i); dataItem.put("XH2", 88888888f); dataItem.put("XH3", "脈兜V5.."); dataList.add(dataItem); } POIUtil.exportExcel2FilePath("test sheet 1","F:\\temp\\customer2.xls", headInfoList, dataList); * @param sheetName sheet名稱 * @param filePath 檔案儲存路徑, 如:f:/a.xls * @param headInfoList List<Map<String, Object>> * key: title 列標題 * columnWidth 列寬 * dataKey 列對應的 dataList item key * @param dataList List<Map<String, Object>> 匯出的資料 * @throws java.io.IOException * */ public static void exportExcel2FilePath(String sheetName, String filePath, List<Map<String, Object>> headInfoList, List<Map<String, Object>> dataList) throws IOException { POIUtil poiUtil = new POIUtil(); //1.建立 Workbook HSSFWorkbook hssfWorkbook = poiUtil.getHSSFWorkbook(); //2.建立 Sheet HSSFSheet hssfSheet = poiUtil.getHSSFSheet(hssfWorkbook, sheetName); //3.寫入 head poiUtil.writeHeader(hssfWorkbook, hssfSheet, headInfoList); //4.寫入內容 poiUtil.writeContent(hssfWorkbook, hssfSheet, 1, headInfoList, dataList); //5.儲存檔案到filePath中 poiUtil.write2FilePath(hssfWorkbook, filePath); } }
demo:
/*開發者資料匯出功能*/ @RequestMapping(value = "/develop_export.action") @ResponseBody public void Export(HttpServletRequest request) throws IOException { Developer developer = new Developer(); Integer pageNum = 1; if (request.getParameter("pageNum") != null) { pageNum = Integer.parseInt(request.getParameter("pageNum")); } developer.setPageNum((pageNum - 1) * 10); developer.setPageSize(10); List<Developer> develpers = developerService .selectByDevelopers(developer); List<Map<String, Object>> headInfoList = new ArrayList<Map<String,Object>>(); Map<String, Object> itemMap = new HashMap<String, Object>(); itemMap.put("title", "開發者編號"); itemMap.put("columnWidth", 25); itemMap.put("dataKey", "XH1"); headInfoList.add(itemMap); itemMap = new HashMap<String, Object>(); itemMap.put("title", "賬戶"); itemMap.put("columnWidth", 50); itemMap.put("dataKey", "XH2"); headInfoList.add(itemMap); itemMap = new HashMap<String, Object>(); itemMap.put("title", "唯一編號"); itemMap.put("columnWidth", 50); itemMap.put("dataKey", "XH3"); headInfoList.add(itemMap); itemMap = new HashMap<String, Object>(); itemMap.put("title", "真實姓名"); itemMap.put("columnWidth", 50); itemMap.put("dataKey", "XH4"); headInfoList.add(itemMap); List<Map<String, Object>> dataList = new ArrayList<Map<String,Object>>(); Map<String, Object> dataItem = null; for(int i=0; i < develpers.size(); i++){ dataItem = new HashMap<String, Object>(); Developer de=develpers.get(i); dataItem.put("XH1", ""+de.getAcctId()); dataItem.put("XH2", ""+de.getUsername()); dataItem.put("XH3", ""+de.getOpenId()); dataItem.put("XH4", ""+de.getAcctRealNm()); dataList.add(dataItem); } POIUtil.exportExcel2FilePath("統一認證平臺開發者資料資訊","D:\\temp\\customer2.xls", headInfoList, dataList); }
相關推薦
java +Spring MVC +MyBatis 實現Excle 匯出
第一步: package com.wlsq.kso.util; import org.apache.poi.hssf.usermodel.*; import java.io.FileOutputStream; import java.io.IOException;
基於Spring MVC + Mybatis實現多選框批量刪除
此專案基於的框架是:springmvc+mybatis,步驟如下: A.前臺程式碼: <th id="ckBox" style="text-align:center;width: 3%;" data-bind="visible: deleteqx == '1'"
Java架構-Spring MVC+Mybatis+cms實現UC瀏覽器文章相關功能
最近公司在模擬UC瀏覽器做一個簡單的cms系統,主要針對於企業內部的文章瀏覽需求,這邊考慮使用者大多用mobile瀏覽文章內容,故使用原生的ios和android進行開發,後面也會整合html5。 使用前後端分離解決方案(服務化的方式) 文章分為普通型別、視訊型別
java企業架構 spring mvc +mybatis + KafKa+Flume+Zookeeper
spring mvc spring springmvc+mybatis redis分布式緩存 restful分布式服務 dubbo + springmvc 平臺簡介 Jeesz是一個分布式的框架,提供項目模塊化、服務化、熱插拔的思想,高度封裝安全性的Java EE快速開
好文分享--java企業架構 spring mvc +mybatis + KafKa+Flume+Zookeeper分布式架構
分布式框架 Maven Springmvc mybatis Dubbo ZooKeeper Redis FastDFS ActiveMQ 開發工具 1.Eclipse IDE:采用Maven項目管理,模塊化。 2.代碼生成:通過界面方式簡單配置,自動生
java電子商務系統源碼 Spring MVC+mybatis+spring boot+spring security
電子商務平臺 word 解決方案 功能 截圖 mybatis 互聯 包括 數據監控 鴻鵠雲商大型企業分布式互聯網電子商務平臺,推出PC+微信+APP+雲服務的雲商平臺系統,其中包括B2B、B2C、C2C、O2O、新零售、直播電商等子平臺。 分布式、微服務、雲架構電子商
java企業架構 spring mvc +mybatis + KafKa+Flume+Zookeep
activit res dea cms art restful work 管理 數據庫讀寫分離 開發工具 1.Eclipse IDE:采用Maven項目管理,模塊化。 2.代碼生成:通過界面方式簡單配置,自動生成相應代碼,目前包括三種生成方式(增刪改查):單表、一對多、樹結
SSM(Spring+Spring MVC+Mybatis)開發前臺後功能完整的java開源部落格管理系統
專案描述 本專案通過SSM(SpringMVC+Mybatis+Spring)框架編寫的一個人部落格管理系統,使用hexo主題,以及MAVEN進行對專案管理,並且前端具有粒子和點選愛心效果.後端的頁面框架為bootstrap.資料庫為mysql. 執行(執行)環境 jdk8+tomcat8+mysql+
spring+spring-mvc+mybatis框架許可權的實現
/** * 登陸的時候需要攔截器 * 框架的攔截器體現了一種設計模式(介面卡模式) * 1)實現介面 HandlerInterceptor * 2)繼承父類 HandlerInterceptorAdapter *&nbs
java電子商務系統原始碼 Spring MVC+mybatis+spring cloud+spring boot+spring security
鴻鵠雲商大型企業分散式網際網路電子商務平臺,推出PC+微信+APP+雲服務的雲商平臺系統,其中包括B2B、B2C、C2C、O2O、新零售、直播電商等子平臺。 分散式、微服務、雲架構電子商務平臺 java b2b2c o2o 技術解決方案 開發語言: java、j2ee 資料庫:mysql
java電子商務系統原始碼 Spring MVC+mybatis+spring cloud+sprin
鴻鵠雲商大型企業分散式網際網路電子商務平臺,推出PC+微信+APP+雲服務的雲商平臺系統,其中包括B2B、B2C、C2C、O2O、新零售、直播電商等子平臺。 分散式、微服務、雲架構電子商務平臺 java b2b2c o2o 技術解決方案 開發語言: java、j2ee 資料庫:mysql
java電子商務系統源碼 Spring MVC+mybatis+spring cloud+sprin
新零售 第三方庫 blog 互聯 工具包 傳播 電子 ado 源碼 鴻鵠雲商大型企業分布式互聯網電子商務平臺,推出PC+微信+APP+雲服務的雲商平臺系統,其中包括B2B、B2C、C2C、O2O、新零售、直播電商等子平臺。 分布式、微服務、雲架構電子商務平臺 java b2
java電子商務系統源碼 Spring MVC+mybatis+spring cloud+spring boot+spring security
聲明式 核心技術 配置管理 load 中間 更強 中心 sql china 鴻鵠雲商大型企業分布式互聯網電子商務平臺,推出PC+微信+APP+雲服務的雲商平臺系統,其中包括B2B、B2C、C2C、O2O、新零售、直播電商等子平臺。 分布式、微服務、雲架構電子商務平臺 jav
練習搭建spring+springmvc+mybatis實現java web登陸
關於spring、springmvc、mybatis的相關資料需要提前瞭解一下。我也只是初學者,就不介紹了。 我使用的是idea 如果有用eclipse也是類似 第一步我是用的maven來引進外部包,它很好用省得你到處去下載包。 新建一個maven專案 修改p
Spring MVC+Mybatis框架實現Junit4單元測試
作為程式設計師,我們自己在寫完程式的時候應該先做完單元測試,確認無誤以後才把程式碼提交到公司公共的系統裡面去,這樣做其實也有利於提高自己的能力,這裡做了個簡單的單元測試案列寫法。 上程式碼: /** * 配置Spring與junit4整合,junit啟動時載入sprin
mybatis註解實現 spring mvc + mybatis+velocity 框架 (附完整專案程式碼)
最近學習了一下mybatis結合網上的一些列子搭建的一個網站的框架,前端顯示用的velocity引擎,資料訪問使用mybatis+oracle,檢視訪問控制spring mvc,框架主要包括一些基本的增刪改操作以及攔截器,廢話不多說了直接開始吧!! 程式碼下載
spring mvc 通過流直接匯出文字格式(excle,csv類似)
一邊我們匯出檔案的時候,首先會先在伺服器生成檔案,然後再通過 (路徑+檔名)的方式 來匯出。。 現在呢, 我們不需要在伺服器生成檔案, 直接匯出,應該怎樣做呢? 看demo吧! package com.broadtech.unicom.contro
Spring+SpringMVc+Mybatis實現數據庫查詢
java代碼 格式 jdb web.xml配置 set ransac load idle name 大家好,本篇博客小Y將會給大家帶來一篇SSM框架實現數據查詢的Demo,使用的數據庫是Mysql,Server是TomCat.現在的SSM整合非常流行,因為springm
分布式服務--spring mvc +mybatis + Dubbo+Zookeeper+Proxy+Restful
spring mvc+my batis kafka dubbo+zookeerper restful redis分布式緩存 雲服務子系統:後臺管理系統、Restfu服務系統、Dubbo服務/管控/監控中心Zookeeper註冊中心、報表分析系統、日誌記錄系統、定時調度系統搜索引擎系統、分布式文
eclipse搭建maven project的spring4 spring mvc mybatis
framework sta port cti https oca web工程 nis lang 一,先確定已經安裝好了Eclipse Java EE IDE for Web Developers我用的是如下版本 Version: Neon.3 Release (4.6.3)