Java로 Excel 파일을 내보내는 방법 소개(코드 예)
Requirements
각 xmpp 컴퓨터실의 온라인/오프라인 사용자 정보를 다음으로 내보냅니다. 엑셀 표(예약된 작업 + 웹 버튼), 다운로드할 수 있도록 웹 페이지에 다운로드 버튼을 제공합니다.
효과 미리보기
파일 효과 내보내기# 🎜🎜#
- 프론트엔드 작성 방법은 회사 프레임워크이므로 일반적인 의미만 이해하세요.
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,List<userinfo> valueList, 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<title.length> 0) { for(int i=0;i<valuelist.size><br>2. Excel 파일 생성 방법<pre class="brush:php;toolbar:false"> 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(List<userinfo> userInfoList, 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; }</userinfo>
3. 구성 파일
@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表, #<require> /spring/config.properties|xmpp.export.excel.path=D:\Doc\test111 #定时任务时间:导出XMPP各个机房的在线用户信息Excel表, #<require> /spring/config.properties|xmpp.export.excel.time=0 44,45,46,47 20 11 * ?</require></require>
5. 프런트 엔드
<!-- 指定执行的目标类、方法 --> <bean> <!-- 指定任务类 --> <property></property> <!-- 指定任务方法 --> <property></property> <property></property> </bean> <!-- 设置执行任务以及时间 --> <bean> <property> <ref></ref> </property> <property> <value>${xmpp.export.excel.time}</value> </property> </bean> <!-- 启动定时器 --> <bean> <property> <list> <!-- <ref bean="autoSmsB2cJobDetailSimpleTrigger" /> --> <ref></ref> </list> </property> </bean>
위 내용은 Java로 Excel 파일을 내보내는 방법 소개(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Java의 난수 생성기 안내. 여기서는 예제를 통해 Java의 함수와 예제를 통해 두 가지 다른 생성기에 대해 설명합니다.

Java의 Weka 가이드. 여기에서는 소개, weka java 사용 방법, 플랫폼 유형 및 장점을 예제와 함께 설명합니다.

Java의 Smith Number 가이드. 여기서는 정의, Java에서 스미스 번호를 확인하는 방법에 대해 논의합니다. 코드 구현의 예.

이 기사에서는 가장 많이 묻는 Java Spring 면접 질문과 자세한 답변을 보관했습니다. 그래야 면접에 합격할 수 있습니다.

Java 8은 스트림 API를 소개하여 데이터 컬렉션을 처리하는 강력하고 표현적인 방법을 제공합니다. 그러나 스트림을 사용할 때 일반적인 질문은 다음과 같은 것입니다. 기존 루프는 조기 중단 또는 반환을 허용하지만 스트림의 Foreach 메소드는이 방법을 직접 지원하지 않습니다. 이 기사는 이유를 설명하고 스트림 처리 시스템에서 조기 종료를 구현하기위한 대체 방법을 탐색합니다. 추가 읽기 : Java Stream API 개선 스트림 foreach를 이해하십시오 Foreach 메소드는 스트림의 각 요소에서 하나의 작업을 수행하는 터미널 작동입니다. 디자인 의도입니다

Java의 TimeStamp to Date 안내. 여기서는 소개와 예제와 함께 Java에서 타임스탬프를 날짜로 변환하는 방법에 대해서도 설명합니다.

캡슐은 3 차원 기하학적 그림이며, 양쪽 끝에 실린더와 반구로 구성됩니다. 캡슐의 부피는 실린더의 부피와 양쪽 끝에 반구의 부피를 첨가하여 계산할 수 있습니다. 이 튜토리얼은 다른 방법을 사용하여 Java에서 주어진 캡슐의 부피를 계산하는 방법에 대해 논의합니다. 캡슐 볼륨 공식 캡슐 볼륨에 대한 공식은 다음과 같습니다. 캡슐 부피 = 원통형 볼륨 2 반구 볼륨 안에, R : 반구의 반경. H : 실린더의 높이 (반구 제외). 예 1 입력하다 반경 = 5 단위 높이 = 10 단위 산출 볼륨 = 1570.8 입방 단위 설명하다 공식을 사용하여 볼륨 계산 : 부피 = π × r2 × h (4
