/**
* 导出-新导出
*
* @return
* @throws IOException
*/
@OperateLogAnn(type = OperateEnum.EXPORT, hibInter = HibInterEnum.ONLOAD)
public String createXML() throws IOException {
try {
this.msg = RESULT_FAIL; area = areaService.queryAreaByCode(this.getRequest().getParameter("areaCode"));
ipRange = this.getRequest().getParameter("ipRange");
// 查询条件
Map<String, String> searchMap = new HashMap<String, String>();
if (StringUtils.isNotBlank(ip)) {
searchMap.put("ip", ip);
}
if (StringUtils.isNotBlank(mac)) {
searchMap.put("mac", mac);
}
if (StringUtils.isNotBlank(version)) {
searchMap.put("version", version);
}
if (StringUtils.isNotBlank(installStatus)) {
searchMap.put("installStatus", installStatus);
}
if (StringUtils.isNotBlank(startTime)) {
searchMap.put("startTime", startTime);
}
if (StringUtils.isNotBlank(endTime)) {
searchMap.put("endTime", endTime);
} List<TerminalInfo> terminalInfoTems = terminalInfoService.terminalL3List(String.valueOf(area.getId()), ipRange, searchMap); String logPath = this.getSession(false).getServletContext().getRealPath(SystemStatics.PATH_LOG_XML);
File xmlFile = LogXMLUtil.createExcel("terminalInfo", 5, terminalInfoTems, logPath);
// 为下载 做 准备
ActionContext.getContext().put("fileName", xmlFile.getName());
ActionContext.getContext().put("filePath", xmlFile.getPath());
this.msg = RESULT_SUCCESS;
} catch (Exception e) {
log.error("导出日志出错", e);
}
return "downLoadUI";
}

  引入这些包用于设置样式的

package com.vrv.paw.utils.export;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Date;
import java.util.List; import jxl.Workbook;
import jxl.format.Colour;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont; import org.dom4j.Document;
import org.dom4j.Element; import com.vrv.paw.domain.TerminalInfo;
import com.vrv.paw.utils.DateTypeConverterUtil;
import com.vrv.paw.utils.ReflectUtil;
import com.vrv.paw.utils.XMLUtil;

  新写的导出方法

  @SuppressWarnings("unchecked")
public static File createExcel(String rootElement ,int col,List<TerminalInfo> listObjects,String path ) throws IOException{
//动态获取Excel标题
Document document = XMLUtil.getDocument( path+"/"+"reportForm.xml");
Element domain = document.getRootElement();
Element log = domain.element( rootElement );
Element title = log.element("title");
String fileName = title.attributeValue("name");
fileName = fileName+"("+DateTypeConverterUtil.converterUtil2String(new Date(), "yyyy-MM-dd")+")";
List<Element> columns = log.element("head").elements("column");
String filePath = path+"/"+fileName+".xls";
//新建Excel文件
File excelFile=new File(filePath);
if(excelFile.exists()){
excelFile.delete();
}
excelFile.createNewFile();
//用JXL向新建的文件中添加内容
jxl.write.WritableSheet ws = null;
jxl.write.WritableWorkbook wwb = null;
OutputStream outf = new FileOutputStream(excelFile);
try {
wwb = Workbook.createWorkbook(outf);
ws = wwb.createSheet(fileName, );
//表头样式
WritableFont headFont = new WritableFont(WritableFont.TIMES,,WritableFont.BOLD);
WritableFont titleFont= new WritableFont(WritableFont.TIMES,,WritableFont.BOLD);
WritableFont dataFont = new WritableFont(WritableFont.TIMES,,WritableFont.NO_BOLD);
WritableCellFormat writHeadFont=new WritableCellFormat(headFont);
WritableCellFormat writTitleFont=new WritableCellFormat(titleFont);
WritableCellFormat writDataFont= null;//new WritableCellFormat(dataFont);
//把水平对齐方式指定为居中
writHeadFont.setAlignment(jxl.format.Alignment.CENTRE);
writTitleFont.setAlignment(jxl.format.Alignment.CENTRE);
//设置背景颜色
writHeadFont.setBackground(Colour.GOLD);
writTitleFont.setBackground(Colour.VERY_LIGHT_YELLOW);
//把垂直对齐方式指定为居中
writHeadFont.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
writTitleFont.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE); ws.mergeCells(, , col, );
ws.addCell(new Label(, , fileName,writHeadFont));
String[] fileds = new String[columns.size()];
for (int i = ; i < columns.size(); i++) {
Element column = columns.get(i);
fileds[i]=column.attributeValue("attribute") ;
ws.addCell(new Label(i, , column.getTextTrim(),writTitleFont));
//设置单元格宽度
ws.setColumnView(i, );
}
TerminalInfo obj = null ;
for(int k = ; k < listObjects.size(); k++){
obj = listObjects.get(k);
obj.setDevOnlyId(obj.getTerOnlyId());
writDataFont=new WritableCellFormat(dataFont);
writDataFont.setAlignment(jxl.format.Alignment.CENTRE);
writDataFont.setVerticalAlignment(jxl.format.VerticalAlignment.CENTRE);
if (k%==) {
writDataFont.setBackground(Colour.ICE_BLUE);
}
for (int i = ; i < fileds.length; i++) {
Object field = ReflectUtil.doField( obj, fileds[i] ) ;
if("".equals(field.toString())){
field = "安装";
}
if("".equals(field.toString())){
field = "卸载";
}
if("".equals(field.toString())){
field = "更新";
}
if("".equals(field.toString())){
field = "上报心跳";
}
if("".equals(field.toString())){
field = "关机";
}
ws.addCell(new Label( i ,k+, field == null ? "" : field.toString(),writDataFont));
}
}
wwb.write();
wwb.close();
} catch (Exception e) {
e.printStackTrace();
}
return excelFile ;
}

项目笔记:导出Excel功能设置导出数据样式的更多相关文章

  1. 项目笔记:导出Excel功能分sheet页插入数据

    导出Excel功能分sheet页处理数据: /*导出EXCEL*/ public void createExcel() { log.info("导出Excel功能已经启动-BEGIN&quo ...

  2. 项目笔记:导出Excel功能

    1.前台这块: var ids=""; $.post("${basePath}/assets/unRegDeviceAction_getDeviceIds.do" ...

  3. vue项目导出EXCEL功能

    因为一些原因导出EXCEL功能必须前端来做,所以就研究了一下,在网上也找了一些文章来看,有一些不完整,我做完了就记录下来,供大家参考: 1.首先先安装依赖: npm install file-save ...

  4. Vue通过Blob对象实现导出Excel功能

    不同的项目有不同的导出需求,有些只导出当前所显示结果页面的表格进入excel,这个时候就有很多插件,比如vue-json-excel或者是Blob.js+Export2Excel.js来实现导出Exc ...

  5. Atitit.导出excel功能的设计 与解决方案

    Atitit.导出excel功能的设计 与解决方案 1.1. 项目起源于背景1 1.2. Js  jquery方案(推荐)jquery.table2excel1 1.3. 服务器方案2 1.4. 详细 ...

  6. C# 使用Epplus导出Excel [1]:导出固定列数据

    C# 使用Epplus导出Excel [1]:导出固定列数据 C# 使用Epplus导出Excel [2]:导出动态列数据 C# 使用Epplus导出Excel [3]:合并列连续相同数据 C# 使用 ...

  7. JAVA实现导出excel功能,封装通用导出工具类

    引入maven <!--excel导出--> <dependency> <groupId>net.sourceforge.jexcelapi</groupId ...

  8. C# 使用Epplus导出Excel [2]:导出动态列数据

    C# 使用Epplus导出Excel [1]:导出固定列数据 C# 使用Epplus导出Excel [2]:导出动态列数据 C# 使用Epplus导出Excel [3]:合并列连续相同数据 C# 使用 ...

  9. DataTable 更改在有数据列的类型方法+DataTable 导出excel功能

    /// <summary> /// 导出功能 /// </summary> /// <param name="sender"></para ...

随机推荐

  1. 【bzoj4146】[AMPPZ2014]Divisors 数论

    原文地址:http://www.cnblogs.com/GXZlegend/p/6801411.html 题目描述 给定一个序列a[1],a[2],...,a[n].求满足i!=j且a[i]|a[j] ...

  2. 【Luogu】P2498拯救小云公主(spfa)

    题目链接 我水爆了- - 容易发现可以把两个圆之间连边,左上为起点右下为终点,最小生成树直到起点跟终点连起来,输出边权/2就行. 然后80. 并不理解为什么这可以转化成spfa求最短路,邻接矩阵暴力跑 ...

  3. jquery对中文进行base64加密,后台用java进行base64解密

    项目中遇到将中文从前台传到后台过程中,出现乱码,一番尝试之后,均是乱码,然后尝试在js代码中先进行base64加密,然后在Java中再进行解密,完美的解决了乱码问题,步骤如下 一,html页面引入jQ ...

  4. Codeforces Round #324 (Div. 2) B

    B. Kolya and Tanya time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  5. Http错误大全

    HTTP/IIS错误类型 1XX 信息提示 用于表示临时的响应.客户端在收到常规响应之前,应准备接受一个或多个1XX响应. 100 :继续101 :切换协议 2XX 成功 表示服务器成功地接受了客户端 ...

  6. Disable or enable the IPv6 protocol in Red Hat Enterprise Linux

    Resolution Red Hat Enterprise Linux 4, 5 and 6 enable Internet Protocol Version 6 (IPv6) by default. ...

  7. Linux 安装配置JDK

    一.下载jdk 参考:http://www.codingyun.com/article/40.html 可以先下载到本地,然后ftp到服务器 也可以直接在服务器下载(windows版本的区分32位与6 ...

  8. yum 和 apt-get

    yum 和apt-get 一般来说著名的linux系统基本上分两大类: 1.RedHat系列:Redhat.Centos.Fedora等 2.Debian系列:Debian.Ubuntu等 RedHa ...

  9. table 实现 九宫格布局

    九宫格布局 最近遇到一个题目,是实现一个九宫格布局的.实现的效果大概是下图这种这样子的: (鼠标悬浮的时候,九宫格的边框颜色是改变的.) 首先想到的是直接使用<table>进行布局,原因很 ...

  10. java应用挂死故障排查

    现象: java开发的web应用无法访问 排查: 1.从resin/log/watchdog-manager.log的日志里可以看出来,jvm的内存满,无法创建新进程 java.lang.OutOfM ...