这篇文章主要介绍了Java如何导出excel文件,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
创新互联建站是一家集网站建设,清江浦企业网站建设,清江浦品牌网站建设,网站定制,清江浦网站建设报价,网络营销,网络优化,清江浦网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
需求
将每个xmpp机房的在线/离线用户信息导出到Excel表格中(定时任务+网页按钮),并在网页上提供下载按钮进行下载。
效果预览

导出文件效果

/** "..."为公司业务代码,大多为从缓存或者数据库中获取导出数据,不影响导出功能。
前端写法为公司框架,理解大致意思就好。
*/
一、工具类:生成excel对象wb
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 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 0) {
for(int i=0;i二、生成excel文件方法
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 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;
} 三、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\test111
#定时任务时间:导出XMPP各个机房的在线用户信息Excel表,
#
/spring/config.properties|xmpp.export.excel.time=0 44,45,46,47 20 11 * ?
${xmpp.export.excel.time}
五、前端
/**前端写法为公司框架,理解大致意思就好。*/
...
...
感谢你能够认真阅读完这篇文章,希望小编分享Java如何导出excel文件内容对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,遇到问题就找创新互联,详细的解决方法等着你来学习!
当前标题:Java如何导出excel文件
标题网址:http://cdysf.com/article/igicoc.html