java的excel导出_java 实现excel 导出功能

1 //导出数据2 //SELECT SUBSTRING(create_time,1,10) s,COUNT(*) FROM data_read WHERE data_id IN (SELECT data_id FROM DATA WHERE model_id=2 OR model_id=27) GROUP BY s

3 @RequestMapping(params = "method=outData",method =RequestMethod.GET)4 public voidoutCompassTongJiData(Integer compassId,String fromWhere,ModelMap model,HttpServletRequest request,HttpServletResponse response)5 {6 String urlPath = request.getScheme()+"://"+request.getServerName()+request.getContextPath();7 XSSFWorkbook rwb1 = newXSSFWorkbook();8

9 while(true)10 {11 if(rwb1.getNumberOfSheets() != 0){12 rwb1.removeSheetAt(0);13 }14 else{15 break;16 }17 }18 try{19 int bankLong = 0;20 int bank1Long = 0;21 String [] bank = request.getParameterValues("bank");//广告类型选择

22 String [] bank1 = request.getParameterValues("bank1");//身份选择

23 String startTime = request.getParameter("startTime");24 String endTime = request.getParameter("endTime");25 String[] shenfenList = {"医生","医学生","其他"};26 String[] zhichengArray = {"主任医师","副主任医师","主治医师","住院医师(有执业证)","住院医师(未考执业证)","助理医师(有执业证)","助理医师(未考执业证)","其他"};27 String typeString1 ="";28 String typeString2 ="";29 if(bank!=null){30 bankLong =bank.length;31 for(int i=0;i

49 XSSFSheet ws1 = rwb1.createSheet("统计数据");50 ws1.addMergedRegion(new CellRangeAddress(0, 1, 0, 0));51 ws1.addMergedRegion(new CellRangeAddress(0, 1, 1, 1));52 ws1.addMergedRegion(new CellRangeAddress(0, 1, 2, 2));53 ws1.addMergedRegion(new CellRangeAddress(0, 1, 3, 3));54 ws1.addMergedRegion(new CellRangeAddress(0, 0, 4, 5));55 int count = 0;//行

56 int rolNUm = 0;//列

57

58 XSSFRow row1 = ws1.createRow(0);59

60 row1.createCell(rolNUm).setCellValue("类型");61 rolNUm++;62 row1.createCell(rolNUm).setCellValue("ID");63 rolNUm++;64 row1.createCell(rolNUm).setCellValue("标题");65 rolNUm++;66 row1.createCell(rolNUm).setCellValue("地址");67 rolNUm++;68 row1.createCell(rolNUm).setCellValue("点击量");//1/2

69

70 count++;71 XSSFRow row2 =ws1.createRow(count);72 row2.createCell(rolNUm).setCellValue("总点击次数");73 rolNUm++;74 row2.createCell(rolNUm).setCellValue("总点击用户数");75 //六种统计类型:首页广告、上方广告、session相关性广告、展商活动、动态(现场秀)、消息站76

77 //得到需要统计的广告类型的集合

78 List compassTongJis = conferencesService.getCompassTongJiByType(fromWhere,typeString1,typeString2,startTime,endTime);//i,group by dataId 查询不重复的data79 //如果不为空,遍历

80 if(compassTongJis != null && compassTongJis.size() != 0){81 for(CompassTongji compassTongJi :compassTongJis){82 int dataId = compassTongJi.getDataId();//广告ID

83 int type =compassTongJi.getType();84 String title = compassTongJi.getDataTitle();//广告标题

85 String url1 = compassTongJi.getDataUrl()==null?"":compassTongJi.getDataUrl();//广告地址

86 String url = "";87 if(type - 8 == 0){88 if(url1.indexOf("method=")!= -1){89 String[] urlStrings = url1.split("&");90 url = urlStrings[0]+"&"+urlStrings[1];91 }else{92 int index = url1.indexOf("?");93 if(index != -1){94 url = url1.substring(0, index);95 }else{96 url =url1;97 }98 }99 }else{100 int index = url1.indexOf("?");101 if(index != -1){102 url = url1.substring(0, index);103 }else{104 url =url1;105 }106

107 }108

109 //总点击量

110 int totalClickNumber =conferencesService.getTotalClickNumber(dataId,url,startTime,endTime,type,fromWhere);111 //总点击人数

112 int totalClickPeopleNumber =conferencesService.getTotalClickPeopleNumber(dataId,url,startTime,endTime,type,fromWhere);113 count++;114 XSSFRow row3 =ws1.createRow(count);115 rolNUm=0;116 row3.createCell(rolNUm).setCellValue(type == 1?"首页广告":type ==2?"上方广告":type==3?"session相关性广告":type==4?"展商活动":type==5?"动态(现场秀)":type==6?"消息站":type == 7?"弹窗":type == 8?"推送":"首页模块");117 rolNUm++;118 row3.createCell(rolNUm).setCellValue(dataId);119 rolNUm++;120 row3.createCell(rolNUm).setCellValue(title);121 rolNUm++;122 row3.createCell(rolNUm).setCellValue(url1);123 rolNUm++;124 row3.createCell(rolNUm).setCellValue(totalClickNumber);125 rolNUm++;126 row3.createCell(rolNUm).setCellValue(totalClickPeopleNumber);127 for(int j=0;j

133 List compassList =conferencesService.getCompassList();134 int compassListLength =compassList.size();135

136 ws1.addMergedRegion(new CellRangeAddress(0, 0, rolNUm+1, compassListLength+rolNUm));137 row1.createCell(rolNUm+1).setCellValue("领域");138 if(compassList != null && compassList.size()!=0){139 for(CompassField compassField : compassList) {140 int compassFieldId =compassField.getCompassFieldId();141 int countLy =conferencesService.getUserLyInfo(dataId,url,compassFieldId,startTime,endTime,type,fromWhere);142 rolNUm++;143 row2.createCell(rolNUm).setCellValue(compassField.getFieldName());144 row3.createCell(rolNUm).setCellValue(countLy);145 }146 }147 }148 if(tongJiZiDuan == 2){//科室统计 userKs

149 List compassKsListList =conferencesService.getCompassKsList();150 int userKsListLength =compassKsListList.size();151 ws1.addMergedRegion(new CellRangeAddress(0, 0, rolNUm+1, userKsListLength+rolNUm));152 row1.createCell(rolNUm+1).setCellValue("科室");153 if(compassKsListList != null && compassKsListList.size()!=0){154 for(CompassKs compassKs : compassKsListList) {155 int compassKsId =compassKs.getCompassKsId();156 int countKs =conferencesService.getUserKsInfo(dataId,url,compassKsId,startTime,endTime,type,fromWhere);157 rolNUm++;158 row2.createCell(rolNUm).setCellValue(compassKs.getKsName());159 row3.createCell(rolNUm).setCellValue(countKs);160 }161 }162 }163

164 if(tongJiZiDuan == 3){//职称统计 zhicheng

165 int userZhichengListLeng =zhichengArray.length;166 ws1.addMergedRegion(new CellRangeAddress(0, 0, rolNUm+1, userZhichengListLeng+rolNUm));167 row1.createCell(rolNUm+1).setCellValue("职称");168 for (int k=0;k

176 }177

178 if(tongJiZiDuan == 4){//身份统计

179 int userShenfenListLength =shenfenList.length;180 ws1.addMergedRegion(new CellRangeAddress(0, 0, rolNUm+1, userShenfenListLength +rolNUm));181 row1.createCell(rolNUm+1).setCellValue("身份");182

183 for (int k = 0;k

192 List provinceList =conferencesService.getProvinceList();193

194 if(provinceList != null && provinceList.size()!=0){195 for(Hospital hospital : provinceList) {196 Integer provinceId =hospital.getHospitalId();197 String provinceName =hospital.getProvince();198

199 if(provinceName!=null && provinceName.length() != 0){200 List cityList =conferencesService.getCityInfoByProvinceId(provinceId);201

202 if(cityList != null && cityList.size() != 0){203 int cityListLength =cityList.size();204 ws1.addMergedRegion(new CellRangeAddress(0, 0, rolNUm+1, rolNUm+cityListLength));205 row1.createCell(rolNUm+1).setCellValue(provinceName);206 for(Hospital hospital2 : cityList) {207 //得到市的名称

208 String cityName =hospital2.getCity();209 Integer cityId =hospital2.getHospitalId();210 if(cityName!=null && cityName.length() != 0){211 int cityNum =conferencesService.getCityInfoByProvinceNameAndCityName(dataId,url,startTime, endTime, cityId,type,fromWhere);212 rolNUm++;213 row2.createCell(rolNUm).setCellValue(cityName);214 row3.createCell(rolNUm).setCellValue(cityNum);215 }216 }217 }218 }//省不为空

219 }220 }221 }//省市统计结束

222 }223 }224 }//最外if结束

225

226

227

228 String filePath = request.getSession().getServletContext().getRealPath("files/execl");229 File conFile = new File(filePath); //目录结构

230 if(!conFile.exists())231 {232 conFile.mkdir();233 }234 String fileName = "compassTongJi.xlsx";235 File file = new File(filePath+"/"+fileName);236 if(file.exists())237 {238 file.delete();239 }240 else{241 file.createNewFile();242 }243 FileOutputStream fout = newFileOutputStream(file);244 rwb1.write(fout);245 fout.close();246 //JSONObject jsonObject = new JSONObject();247 //jsonObject.accumulate("url",request.getContextPath()+"/files/execl/"+fileName);248 //writeToJson(response, jsonObject.toString());

249 String urlString ="";250 PrintWriter out =response.getWriter();251 response.setCharacterEncoding("utf-8");252 response.setContentType("text/html;charset=UTF-8");253 out.write(urlString);254 out.flush();255 out.close();256 } catch(Exception e) {257 //TODO: handle exception

258 e.printStackTrace();259 }260 }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java如何让线程阻塞_Java中如何使一个线程进入阻塞态?

按我的理解,当一个线程需要获取的锁被另一个线程占用时,将进入阻塞态。但实际好像不是这样的,下面是我的代码。在run方法中会调用MyBlock的isBlocked方法,该方法添加了synchronized限定。在main方法中创建两个线程:t1和…

java监听焦点事件_【Java Swing公开课|Java Swing焦点事件监听器怎么用,看完这篇文章你一定就会了】- 环球网校...

【摘要】作为一门面向对象编程语言,Java吸收了C语言的优点,也展现了其强大的一面,我们能在各个地方看到其功能强大和简单易用的两个特征,当然,也吸引了很多程序员的注意力,所以就有人想了解Java的相关内容&…

idea创建java项目目录结构_用IDEA创建一个简单的Maven的JavaWeb项目

1.项目环境IDEA:2016.2JDK:1.8.0_76Maven:3.2.52.File-->New-->Project-->Maven3.选择Project SDK:1.8,然后勾选下方的Create from archetype,选择maven archetype webapp,点击Next4.填…

java min 函数的使用方法_【Python】Java程序员学习Python(五)— 函数的定义和使用...

不想做一个待宰的羔羊!!!!要自己变得强大。。。。函数的定义和使用放在最前边还是有原因的,现在语言趋于通用,基本类型基本都是那些,重点还是学习对象的使用方法,而最根本的还是方法…

java 斜率求角度_计算两条线之间的角度而不必计算斜率? (Java)

我有两条线:L1和L2。我想计算两条线之间的角度。 L1具有点:{(x1,y1),(x2,y2)}和L2具有点:{(x3,y3),(x4,y4)}。如何计算这两条线之间形成的角度,而不必计算斜率…

java runtime类 heap_Java 进阶(一) JVM运行时内存模型

1.JVM运行时数据区域的划分a.程序计数器(Program Counter Register)一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。每个线程拥有独立的一个计数器,如果当前执行的是Native方法,则计数器值为空。b.JVM栈(Java Virtual Ma…

jmeter java性能_jmeter java性能测试

本篇文章主要讲解jmeter如何测试java请求,以项目中某个接口为例,请求数据为post,返回也为post1:新建maven工程,pom文件为1 2 xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd…

mysql 换服务器_更换MYSQL后数据库连接问题

【IT168 服务器学院】查看MYSQL数据库中 数据库与用户的连接方式>mysql -uroot -ppassword>use mysql;>select User,host,Password from user;问题:将备份的MYSQL数据库CP回DATA下后,老是连接数据库出错,或是提示UPDATE之类&#xf…

java 向上转型_java向上转型和向下转型

转型是在继承的基础上而言的,继承是面向对象语言中,代码复用的一种机制,通过继承,子类可以复用父类的功能,如果父类不能满足当前子类的需求,则子类可以重写父类中的方法来加以扩展。向上转型:子…

ckeditor java 上传_java使用CKEditor实现图片上传功能

java如何使用ckeditor实现图片上传功能,具体内容如下1.根据实际需要下载指定的ckeditor2.删除文件ckeditor/plugins/image/dialogs/image.js预览框中文本内容,并修改hidden属性值为显示上传选项卡删除image.js中包含在双引号中的上述文本将image.js中的h…

imsi序列号_IPhone 获取IMSI序列号

获取IPhone的IMSI序列号 无 #include dlfcn.h#define PRIVATE_PATH "/System/Library/PrivateFrameworks/CoreTelephony.framework/CoreTelephony"- void getImsi(){#if !TARGET_IPHONE_SIMULATOR void *kit dlopen(PRIVATE_PATH,RTLD_LAZY); NSString *imsi获取IPh…

java如何实现信号量_使用二进制信号量实现通用信号量

看到你的问题图像后,输入信号量的目的是只允许单个进程/线程等待锁定,如果你不使用它,其他进程将进入等待队列 .why we need the entry semaphore条目信号量未使用任何值初始化,如果它是全局声明的,则它将初始化为0.因…

java定时任务什么时间e结束_Java定时任务

public classQuartzManager {private static SchedulerFactory schedulerFactory newStdSchedulerFactory();/*** Description: 添加一个定时任务**paramjobName 任务名*paramjobGroupName 任务组名*paramtriggerName 触发器名*paramtriggerGroupName 触发器组名*paramjobClas…

Java中运用数组的四种排序方法_JAVA中运用数组的四种排序方法

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼快速排序public class TestMain {public static void main(String[] args) {Integer[] list{34,3,53,2,23,7,14,10};QuicSort qsnew QuicSort();qs.quick(list);for(int i0;iSystem.out.print(list[i]" ");}System.out.p…

java 时间转中文_使用JScript把时间转成中文

测试页function TimeCtrl(){this.DateObj new Date();this.toGb function(Str){Str Str.toString();if(/^\d$/.test(Str)){var NewStr "";var GBNum "零一二三四五六七八九";for(var i 0; i < Str.length; i){NewStr GBNum.charAt(Str.charAt(i)…

java比赛用多重for_关于 Java 中 for的多重循环

1、i1&#xff0c;赋值2、判断 i < 3(i为1)&#xff0c;结果为 true&#xff0c;进入循环体 A&#xff1a;for (int j 1;j < i;j) {System.out.print("*");} System.out.println(); 这部分。3.0、执行循环体 A。3.1、j 1&#xff0c;赋值3.2、判断 j < i …

java 程序流程控制知识点_JAVA基础知识点梳理三:流程控制语句

条件语句之 if语法&#xff1a;执行过程&#xff1a;例&#xff1a;int score 65;if (score > 60) {System.out.println("该学生及格");}//注&#xff1a;如果 if 条件成立时的执行语句只有一条&#xff0c;大括弧可以省略&#xff0c;但如果执行语句有多条&…

寂静岭3java攻略_《寂静岭3HD》通关心得:感人之佳作

作者&#xff1a;jet1942(原帖点击进入)寂静岭是什么?它是人的内心世界,它是人赎罪的地方。读了这句话后&#xff0c;是不是感觉意境非常深邃&#xff0c;还带有些恐怖感?是的&#xff0c;这就是寂静岭的魅力所在&#xff0c;作为一款AVG类游戏&#xff0c;他与生化危机不同&…

java不要无限循环_java – 看似无限循环终止,除非使用System.out.println

我有一个简单的代码,应该是一个无限循环,因为x将永远增长,并将始终保持大于j.int x 5;int y 9;for (int j 0; j < x; j) {x x y;}System.out.println(y);但是按原样,它打印y并且不会无休止地循环.我无法弄清楚为什么.但是,当我按以下方式调整代码时&#xff1a;int x …

jpg无损压缩 java_使用FreeImage对JPEG进行无损优化

您可以使用FreeImage删除元数据&#xff0c;但是&#xff0c;对于jpeg&#xff0c;图像将在保存时重新压缩&#xff0c;并伴随相关的图像质量损失 . by default, FreeImage will have copied the metadata to the new imageIf Not (args.CopyMetadata) ThenDim tag As New Free…