摘要:效果預覽導出文件效果點擊下載彈出框效果代碼總覽為公司業務代碼,大多為從緩存或者數據庫中獲取導出數據,不影響導出功能。導出導出導出所有在線離線用戶成功導出所有在線離線用戶失敗引用導出表格
需求
將每個xmpp機房的在線/離線用戶信息導出到Excel表格中(定時任務+網頁按鈕),并在網頁上提供下載按鈕進行下載。
效果預覽導出文件效果
點擊下載彈出框效果代碼總覽
/** "..."為公司業務代碼,大多為從緩存或者數據庫中獲取導出數據,不影響導出功能。
前端寫法為公司框架,理解大致意思就好。
*/
一、工具類:生成excel對象wb [1]
package com.onewaveinc.utils; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import com.onewaveinc.mip.log.Logger; import com.onewaveinc.user.entity.UserInfo; /** * 生成Excel文件工具類 * @author wxin * */ public class ExcelUtil { private static Logger logger = Logger.getInstance(ExcelUtil.class); /** * 導出Excel * @param sheetName sheet名稱 * @param title 標題 * @param values 內容 * @param wb HSSFWorkbook對象 * @return */ public static HSSFWorkbook getHSSFWorkbook(String sheetName,String []title,ListvalueList, HSSFWorkbook wb){ // 第一步,創建一個HSSFWorkbook,對應一個Excel文件 if(wb == null){ wb = new HSSFWorkbook(); } // 第二步,在workbook中添加一個sheet,對應Excel文件中的sheet HSSFSheet sheet = wb.createSheet(sheetName); // 第三步,在sheet中添加表頭第0行,注意老版本poi對Excel的行數列數有限制 HSSFRow row = sheet.createRow(0); // 第四步,創建單元格,并設置值表頭 設置表頭居中 HSSFCellStyle style = wb.createCellStyle(); // 創建一個居中格式 style.setAlignment(HSSFCellStyle.ALIGN_CENTER); //聲明列對象 HSSFCell cell = null; //創建標題 for(int i=0;i 0) { for(int i=0;i 二、生成excel文件方法[1]
public void run() throws InterruptedException, IOException { ExportExcel(); } /** * 定時導出XMPP每個機房(一個集群)的在線用戶的信息 * 導出信息:用戶賬號,mac地址,登陸的IP,登陸域名,機頂盒的型號,版本,和以及登陸所在節點的ip, * 顯示 登陸的時間,登陸的時長(現在的時間減去登陸的時間)。 */ public String ExportExcel() { String result = ""; try { ... result = ImportDataExcel(offlineUserInfoList, serverName, false); logger.info("**此次處理離線結果為:"+result); ... } catch (Exception e) { result = "failed"; e.printStackTrace(); } return result; } /** * 導出用戶信息數據到Excel表格 * @param userInfoList * @return msg “failed” or “success” */ public String ImportDataExcel(ListuserInfoList, String serverName , boolean isOnline) { String msg = ""; String fileName = ""; String sheetName = ""; String[] title = {"用戶賬號","mac地址","登陸IP","登陸域名","機頂盒型號", "機頂盒版本", "登錄所在節點的IP", "登陸時間", "登陸時長"}; //設置日期格式 SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); // new Date()為獲取當前系統時間,也可使用當前時間戳 String date = df.format(new Date()); if (isOnline) { fileName = serverName+"-online-usersInfo-"+date+".xls"; sheetName = serverName+"在線用戶信息表"; } else { fileName = serverName+"-offline-usersInfo-"+date+".xls"; sheetName = serverName+"離線用戶信息表"; } HSSFWorkbook wb = new HSSFWorkbook(); wb = ExcelUtil.getHSSFWorkbook(sheetName, title, userInfoList, null); ByteArrayOutputStream os = new ByteArrayOutputStream(); try{ wb.write(os); } catch (IOException e){ msg = "failed"; e.printStackTrace(); } byte[] content = os.toByteArray(); //Excel文件生成后存儲的位置。 File file = new File(path+"/"+fileName); OutputStream fos = null; try{ fos = new FileOutputStream(file); fos.write(content); os.close(); fos.close(); if ("".equals(msg)) { msg = "success"; } logger.info("生成用戶信息Excel表格成功:"+ fileName); } catch (Exception e){ msg = "failed"; logger.error("生成用戶信息Excel表格失敗:"+ fileName); e.printStackTrace(); } return msg; } 三、SpringMVC
@SuppressWarnings("deprecation") @Resource("userLoginService") @Bean("contbiz.imoss.userloginservice") public class UserChannelLoginService { ... @Post @Path("exportExcel") public String ExportExcel() { String result = ""; result = exportXMPPUserInfo.ExportExcel(); return result; } ... }四、配置文件
#導出文件路徑:導出XMPP各個機房的在線用戶信息Excel表, #/spring/config.properties|xmpp.export.excel.path=D:Doc est111 #定時任務時間:導出XMPP各個機房的在線用戶信息Excel表, # /spring/config.properties|xmpp.export.excel.time=0 44,45,46,47 20 11 * ? ${xmpp.export.excel.time} 五、前端
/**前端寫法為公司框架,理解大致意思就好。*/ ... ...引用[1] https://www.cnblogs.com/gudon... JAVA導出EXCEL表格
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/72666.html
摘要:一行代碼完成對象和之間的轉換。說明屬性列名稱四版本更新日志版本,新特性導出支持對象裝換為,并且支持字節數組等多種導出方式導入支持轉換為對象,并且支持文件路徑等多種導入方式版本,新特性字段支持類型。 《Java對象和Excel轉換工具XXL-EXCEL》 showImg(https://segmentfault.com/img/remote/1460000012470335);showI...
摘要:消費之后,多線程處理文件導出,生成文件后上傳到等文件服務器。前端直接查詢并且展現對應的任務執行列表,去等文件服務器下載文件即可。這客戶體驗不友好,而且網絡傳輸,系統占用多種問題。拓展閱讀導出最佳實踐框架 產品需求 產品經理需要導出一個頁面的所有的信息到 EXCEL 文件。 需求分析 對于 excel 導出,是一個很常見的需求。 最常見的解決方案就是使用 poi 直接同步導出一個 exc...
摘要:我想能不能像配置文件一樣可配置的導入導出,那樣使用起來就方便許多。配置和使用下面是員工信息模型。支持多種映射,使用英文逗號進行分割。導入時它會以分割前面的作為導入時使用的值,后面的作為導出時使用的值后面值進行逆推導出時同理。 1.前言 在工作時,遇到過這樣的需求,需要靈活的對工單進行導入或導出,以前自己也做過,但使用不靈活繁瑣。我想能不能像配置文件一樣可配置的導入導出,那樣使用起來就方...
摘要:日常工作中是我們經常需要處理的文件報表的生成數據的導出幾乎每個項目都需要寫對應的處理作者也是編寫這塊代碼大軍的一員能否有方法讓我們不用重復編寫代碼呢能否只要簡單配置就可以完成我們的生成呢作者分析了和對象的關系發現就是我們的一個對象是我們的一 日常工作中,Excel是我們經常需要處理的文件,報表的生成,數據的導出,幾乎每個項目都需要寫對應的處理.作者也是編寫這塊代碼大軍的一員,能否有方法...
閱讀 2799·2021-11-17 09:33
閱讀 4479·2021-09-22 15:57
閱讀 2877·2019-08-30 14:16
閱讀 3140·2019-08-29 14:07
閱讀 2419·2019-08-26 11:55
閱讀 3431·2019-08-23 17:07
閱讀 1731·2019-08-23 16:50
閱讀 2543·2019-08-23 16:08