springmvc 中使用poi匯出excel
看了一些poi匯出excel的部落格
原文地址 http://blog.csdn.net/wangchangpen62/article/details/44410967
匯出excel 工具類的寫法
package com.fuiou.MyProject.unit; import java.io.IOException; import java.io.OutputStream; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRichTextString; 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.util.CellRangeAddress; public class ExportExcelUtils { private String title; // 匯出表格的表名 private String[] rowName;// 匯出表格的列名 private List<Object[]> dataList = new ArrayList<Object[]>(); // 物件陣列的List集合 private HttpServletResponse response; // 傳入要匯入的資料 public ExportExcelUtils(String title,String[] rowName,List<Object[]> dataList,HttpServletResponse response){ this.title=title; this.rowName=rowName; this.dataList=dataList; this.response = response; } // 匯出資料 public void exportData(){ try { HSSFWorkbook workbook =new HSSFWorkbook(); // 建立一個excel物件 HSSFSheet sheet =workbook.createSheet(title); // 建立表格 // 產生表格標題行 HSSFRow rowm =sheet.createRow(0); // 行 HSSFCell cellTiltle =rowm.createCell(0); // 單元格 // sheet樣式定義 HSSFCellStyle columnTopStyle = this.getColumnTopStyle(workbook); // 頭樣式 HSSFCellStyle style = this.getStyle(workbook); // 單元格樣式 /** * 引數說明 * 從0開始 第一行 第一列 都是從角標0開始 * 行 列 行列 (0,0,0,5) 合併第一行 第一列 到第一行 第六列 * 起始行,起始列,結束行,結束列 * * new Region() 這個方法使過時的 */ // 合併第一行的所有列 sheet.addMergedRegion(new CellRangeAddress(0, (short) 0, 0, (short) (rowName.length-1))); cellTiltle.setCellStyle(columnTopStyle); cellTiltle.setCellValue(title); int columnNum = rowName.length; // 表格列的長度 HSSFRow rowRowName = sheet.createRow(1); // 在第二行建立行 HSSFCellStyle cells =workbook.createCellStyle(); cells.setBottomBorderColor(HSSFColor.BLACK.index); rowRowName.setRowStyle(cells); // 迴圈 將列名放進去 for (int i = 0; i < columnNum; i++) { HSSFCell cellRowName = rowRowName.createCell((int)i); cellRowName.setCellType(HSSFCell.CELL_TYPE_STRING); // 單元格型別 HSSFRichTextString text = new HSSFRichTextString(rowName[i]); // 得到列的值 cellRowName.setCellValue(text); // 設定列的值 cellRowName.setCellStyle(columnTopStyle); // 樣式 } // 將查詢到的資料設定到對應的單元格中 for (int i = 0; i < dataList.size(); i++) { Object[] obj = dataList.get(i);//遍歷每個物件 HSSFRow row = sheet.createRow(i+2);//建立所需的行數 for (int j = 0; j < obj.length; j++) { HSSFCell cell = null; //設定單元格的資料型別 if(j==0){ // 第一列設定為序號 cell = row.createCell(j,HSSFCell.CELL_TYPE_NUMERIC); cell.setCellValue(i+1); }else{ cell = row.createCell(j,HSSFCell.CELL_TYPE_STRING); if(!"".equals(obj[j]) && obj[j] != null){ cell.setCellValue(obj[j].toString()); //設定單元格的值 }else{ cell.setCellValue(" "); } } cell.setCellStyle(style); // 樣式 } } // 讓列寬隨著匯出的列長自動適應 sheet.autoSizeColumn((short)0); //調整第一列寬度 sheet.autoSizeColumn((short)1); //調整第二列寬度 sheet.autoSizeColumn((short)2); //調整第三列寬度 sheet.autoSizeColumn((short)3); //調整第四列寬度 sheet.autoSizeColumn((short)4); //調整第五列寬度 sheet.autoSizeColumn((short)5); //調整第六列寬度 if(workbook !=null){ try { // excel 表文件名 String fileName = title + String.valueOf(System.currentTimeMillis()).substring(4, 13) + ".xls"; String fileName11 = URLEncoder.encode(fileName,"UTF-8"); String headStr = "attachment; filename=\"" + fileName11 + "\""; response.setContentType("APPLICATION/OCTET-STREAM"); response.setHeader("Content-Disposition", headStr); OutputStream out = response.getOutputStream(); workbook.write(out); out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } } }catch(Exception e){ e.printStackTrace(); } } public HSSFCellStyle getColumnTopStyle(HSSFWorkbook workbook) { // 設定字型 HSSFFont font = workbook.createFont(); //設定字型大小 font.setFontHeightInPoints((short)11); //字型加粗 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); return style; } public HSSFCellStyle getStyle(HSSFWorkbook workbook) { // 設定字型 HSSFFont font = workbook.createFont(); //設定字型大小 //font.setFontHeightInPoints((short)10); //字型加粗 //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); return style; } }
jsp 頁面
<td><a href="${pageContext.request.contextPath}/user/exportExcel.action">匯出資料</a></td>
controller 層中的程式碼
@RequestMapping(value ="/exportExcel.action") public ModelAndView exportExcel(HttpServletRequest request,HttpServletResponse response){ try { UserInfoPO user =new UserInfoPO(); // 查出使用者資料 List<UserInfoPO> userlist = userInfoService.queryList(user); String title ="使用者資訊表"; String[] rowsName=new String[]{"序號","ID","使用者名稱","性別","登入id","登入密碼"}; List<Object[]> dataList = new ArrayList<Object[]>(); Object[] objs = null; for (int i = 0; i < userlist.size(); i++) { UserInfoPO po =userlist.get(i); objs = new Object[rowsName.length]; objs[0] = i; objs[1] = po.getId(); objs[2] = po.getUserName(); objs[3] = po.getSex(); objs[4] = po.getLoginId(); objs[5] = po.getLoginPassword(); dataList.add(objs); } // ExportExcelUtils ex =new ExportExcelUtils(title, rowsName, dataList,response); ex.exportData(); } catch (Exception e) { e.printStackTrace(); } return null; }
相關推薦
SpringMVC使用POI匯出Excel
對於現在大部分的應用管理系統中,會很多用到匯出Excel,這裡我根據專案整理了一下匯出的具體實現,匯出的列表可是任意的List<Object>,具體需要根據你自己需求而定(ExcelEntity),另外需要自己定義標題(List<String> tit
SpringMVC利用POI匯出EXCEL傳引數總結
前一篇介紹了利用POI匯出EXCEL的程式,基本都屬於後端的程式,這個找網上的例子一大堆, 今天跟大家聊聊,匯出的時候前臺的訪問方式有幾種。 一般來說利用POI匯出時, 前臺如果是$ajax的方式的話會報錯,程式返回後,前臺程式會自動走到error的判斷,返回報錯,或者返回
springmvc和poi匯出Excel表格
工具類的封裝如下:package com.bgs.util;import java.io.BufferedOutputStream;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream
springmvc + mybatis + poi匯出Excel例項
1、前端js程式碼: $("#fileExportAll").click(function(){ var start = $("#startDate").val(); var end = $("#endDate").val(
實際專案中使用poi匯出excel(spring+springMVC+Mybatis環境下)
1,需要匯出的原始資料.即根據實際需求查詢得到的結果集作為原始資料.可能是一個list,map...看你封裝成什麼樣了(這裡是封裝成list了) 2,將原始的資料轉換到excel中,具體根據資料形式不同,寫法也會不同.不過這些都是大同小異的. 3,將生產好的excel檔案寫到一個路徑下(這裡都是放到t
springmvc 中使用poi匯出excel
看了一些poi匯出excel的部落格 原文地址 http://blog.csdn.net/wangchangpen62/article/details/44410967 匯出excel 工具類的寫法 package com.fuiou.MyProject.
POI中HSSFWorkbook匯出excel封裝的工具類
在實際中匯出excel非常常見,於是自己封裝了一個匯出資料到excel的工具類,先附上程式碼,最後會寫出例項和解釋。 程式碼中依賴了slf4j日誌包,commons-io包的IOUtils關閉流,commons-lang和commons-collections包等包。 package
在Javaweb中利用POI匯出Excel表格
場景:要求利用Excel把報表的資料匯出到本地計算機。 Javaweb生成Excel表格有很多種技術,我選擇了POI技術進行Excel表格的匯入匯出。選擇POI是因為它相容了office2007以上的版本和簡便的操作性。 在此通過簡單的例子說明如何利
【Java】SpringMVC整合poi實現excel的匯入匯出
2.特點:結構: HSSF - 提供讀寫Microsoft Excel格式檔案的功能。 XSSF - 提供讀寫Microsoft Excel OOXML格式檔案的功能。 HWPF - 提供讀寫Microsoft Word格式檔案的功能。 HSLF - 提供讀寫Microsof
專案中使用POI匯出Excel的一些心得(包含複雜表頭和動態頁數與列數)
最近使用poi做Excel匯出較多,應用場景也各種各樣,導致基本都是按需求自己手動拼的Excel,網上的通用工具類大多不適合業務需要,簡單記錄下來以免下次用到。 通用版(根據jsp上的表格內容動態生成Excel) 工具類 @SuppressWarn
菜鳥調錯——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
Java中檔案匯出excel
首先是在HTML頁面中加上匯出按鈕: <div class="ibox-body"> <div id="exampleToolbar" role="group"> <button type="button" class="btn b
使用poi匯出excel檔案
一、獲取資料 private List<PmsrT2> getPmsrT2List(HttpServletRequest request) { try { &
Springmvc 使用 AbstractExcelView 匯出excel
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
poi匯出excel方式和疑難
最近由於公司要做什麼資訊安保,要對匯出的檔案進行加密操作,供應商提供的api對檔案進行加密需要檔案路徑,現有的匯出都直接輸出流解決,沒辦法只能改變匯出方法,在尋找好的匯出過程試過許多方式,也遇到很蛋疼的問題。 首先匯出excel的方式目前發現以下3種,1:最常用的輸出流形勢直接將檔案返回給客戶端。
POI匯出Excel簡單示例
簡單示例,poi操作Excel實現中文列寬自適應。 maven專案,在pom.xml檔案中引入poi的jar包依賴。 非maven專案需要先下載poi相關jar包匯入。 <dependency> <groupId>org.apache.poi&