package com.landtool.lanbase.modules.api.utils; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Calendar; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; public class Excel { //Route:读取配置文件的上传路径 public static String going(HttpServletResponse response,String[] biaoti,String json,String Route) throws IOException { //创建HSSFWorkbook对象(excel的文档对象) HSSFWorkbook wb = new HSSFWorkbook(); //建立新的sheet对象(excel的表单) HSSFSheet sheet = wb.createSheet("资源表"); sheet.setDefaultColumnWidth(30); //在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个 HSSFRow row1 = sheet.createRow(0); //创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个 // HSSFCell cell = row1.createCell(0); //设置单元格内容 // cell.setCellValue("学员考试成绩一览表"); //合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列 // sheet.addMergedRegion(new CellRangeAddress(0,0, 0,3)); //在sheet里创建第二行 HSSFRow row2 = sheet.createRow(0); //创建单元格并设置单元格内容 //获取标题的长度 for (int i = 0; i < biaoti.length; i++) { row2.createCell(i).setCellValue(biaoti[i]); } //将传入的string转换为json JSONArray topics = JSON.parseArray(json); // JSONArray topics = obj.getJSONArray("topics"); //在sheet里创建第N行 for (int i = 0; i < topics.size(); i++) { JSONObject obj1 = JSON.parseObject(topics.getString(i)); HSSFRow row = sheet.createRow((int) i + 1); row.createCell(0).setCellValue(obj1.getString("resourceid")); row.createCell(1).setCellValue(obj1.getString("title")); row.createCell(2).setCellValue(obj1.getString("mulu")); row.createCell(3).setCellValue(obj1.getString("resourceclass")); row.createCell(4).setCellValue(obj1.getString("sharprotocol")); row.createCell(5).setCellValue(obj1.getString("serverurl")); row.createCell(6).setCellValue(obj1.getString("pubdate")); row.createCell(7).setCellValue(obj1.getString("pubunitid")); row.createCell(8).setCellValue(obj1.getString("createuserid")); } //输出Excel文件 SimpleDateFormat sFormat=new SimpleDateFormat("yyyyMMddHHmmss"); Calendar calendar=Calendar.getInstance(); //获取系统当前时间并将其转换为string类型 String name=sFormat.format(calendar.getTime()); // alert ykm 2019/03/04 name = name + "-" + topics.size(); File fileDir = new File(Route); if(!fileDir.exists()){ fileDir.mkdirs(); } FileOutputStream output=new FileOutputStream(Route+name+".xls"); wb.write(output); output.flush(); return name +".xls"; } public static String FWPHgoing(HttpServletResponse response,String[] biaoti,String json,String Route) throws IOException { //创建HSSFWorkbook对象(excel的文档对象) HSSFWorkbook wb = new HSSFWorkbook(); //建立新的sheet对象(excel的表单) HSSFSheet sheet = wb.createSheet("访问排行表"); sheet.setDefaultColumnWidth(30); //在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个 HSSFRow row1 = sheet.createRow(0); //创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个 // HSSFCell cell = row1.createCell(0); //设置单元格内容 // cell.setCellValue("学员考试成绩一览表"); //合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列 // sheet.addMergedRegion(new CellRangeAddress(0,0, 0,3)); //在sheet里创建第二行 HSSFRow row2 = sheet.createRow(0); //创建单元格并设置单元格内容 //获取标题的长度 for (int i = 0; i < biaoti.length; i++) { row2.createCell(i).setCellValue(biaoti[i]); } //将传入的string转换为json // JSONObject obj = JSON.parseObject(json); JSONArray topics = JSON.parseArray(json); //在sheet里创建第N行 for (int i = 0; i < topics.size(); i++) { JSONObject obj1 = JSON.parseObject(topics.getString(i)); HSSFRow row = sheet.createRow((int) i + 1); row.createCell(0).setCellValue(obj1.getString("resourceid")); row.createCell(1).setCellValue(obj1.getString("title")); row.createCell(2).setCellValue(obj1.getString("resourceclass")); row.createCell(3).setCellValue(obj1.getString("pubunitid")); row.createCell(4).setCellValue(obj1.getString("pubdate")); row.createCell(5).setCellValue(obj1.getString("fangwenpaihang")); } //.....省略部分代码 //输出Excel文件 SimpleDateFormat sFormat=new SimpleDateFormat("yyyyMMddHHmmss"); Calendar calendar=Calendar.getInstance(); //获取系统当前时间并将其转换为string类型 String name=sFormat.format(calendar.getTime()); FileOutputStream output=new FileOutputStream(Route+name+".xls"); wb.write(output); output.flush(); System.out.println( name+".xls"); return name+".xls"; } public static String SCgoing(HttpServletResponse response,String[] biaoti,String json,String Route) throws IOException { //创建HSSFWorkbook对象(excel的文档对象) HSSFWorkbook wb = new HSSFWorkbook(); //建立新的sheet对象(excel的表单) HSSFSheet sheet = wb.createSheet("收藏表"); sheet.setDefaultColumnWidth(30); //在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个 HSSFRow row1 = sheet.createRow(0); //创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个 // HSSFCell cell = row1.createCell(0); //设置单元格内容 // cell.setCellValue("学员考试成绩一览表"); //合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列 // sheet.addMergedRegion(new CellRangeAddress(0,0, 0,3)); //在sheet里创建第二行 HSSFRow row2 = sheet.createRow(0); //创建单元格并设置单元格内容 //获取标题的长度 for (int i = 0; i < biaoti.length; i++) { row2.createCell(i).setCellValue(biaoti[i]); } //将传入的string转换为json JSONArray topics = JSON.parseArray(json); // JSONArray topics = obj.getJSONArray("topics"); //在sheet里创建第N行 for (int i = 0; i < topics.size(); i++) { JSONObject obj1 = JSON.parseObject(topics.getString(i)); HSSFRow row = sheet.createRow((int) i + 1); row.createCell(0).setCellValue(obj1.getString("resourceid")); row.createCell(1).setCellValue(obj1.getString("title")); row.createCell(2).setCellValue(obj1.getString("resourceclass")); row.createCell(3).setCellValue(obj1.getString("pubunitname")); row.createCell(4).setCellValue(obj1.getString("shoucangdate")); } //.....省略部分代码 //输出Excel文件 SimpleDateFormat sFormat=new SimpleDateFormat("yyyyMMddHHmmss"); Calendar calendar=Calendar.getInstance(); //获取系统当前时间并将其转换为string类型 String name=sFormat.format(calendar.getTime()); FileOutputStream output=new FileOutputStream(Route+name+".xls"); wb.write(output); output.flush(); System.out.println( name+".xls"); return name+".xls"; } public static String ZXgoing(HttpServletResponse response,String[] biaoti,String json,String Route) throws IOException { //创建HSSFWorkbook对象(excel的文档对象) HSSFWorkbook wb = new HSSFWorkbook(); //建立新的sheet对象(excel的表单) HSSFSheet sheet = wb.createSheet("最新资源"); sheet.setDefaultColumnWidth(30); //在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个 HSSFRow row1 = sheet.createRow(0); //创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个 // HSSFCell cell = row1.createCell(0); //设置单元格内容 // cell.setCellValue("学员考试成绩一览表"); //合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列 // sheet.addMergedRegion(new CellRangeAddress(0,0, 0,3)); //在sheet里创建第二行 HSSFRow row2 = sheet.createRow(0); //创建单元格并设置单元格内容 //获取标题的长度 for (int i = 0; i < biaoti.length; i++) { row2.createCell(i).setCellValue(biaoti[i]); } //将传入的string转换为json // JSONObject obj = JSON.parseObject(json); JSONArray topics = JSON.parseArray(json); //在sheet里创建第N行 for (int i = 0; i < topics.size(); i++) { JSONObject obj1 = JSON.parseObject(topics.getString(i)); HSSFRow row = sheet.createRow((int) i + 1); row.createCell(0).setCellValue(obj1.getString("resourceid")); row.createCell(1).setCellValue(obj1.getString("title")); row.createCell(2).setCellValue(obj1.getString("resourceclass")); row.createCell(3).setCellValue(obj1.getString("pubunitid")); row.createCell(4).setCellValue(obj1.getString("pubdate")); } //.....省略部分代码 //输出Excel文件 SimpleDateFormat sFormat=new SimpleDateFormat("yyyyMMddHHmmss"); Calendar calendar=Calendar.getInstance(); //获取系统当前时间并将其转换为string类型 String name=sFormat.format(calendar.getTime()); FileOutputStream output=new FileOutputStream(Route+name+".xls"); wb.write(output); output.flush(); System.out.println( name+".xls"); return name+".xls"; } public static String SQgoing(HttpServletResponse response,String[] biaoti,String json,String Route) throws IOException { //创建HSSFWorkbook对象(excel的文档对象) HSSFWorkbook wb = new HSSFWorkbook(); //建立新的sheet对象(excel的表单) HSSFSheet sheet = wb.createSheet("申请资源表"); sheet.setDefaultColumnWidth(30); //在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个 HSSFRow row1 = sheet.createRow(0); //创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个 // HSSFCell cell = row1.createCell(0); //设置单元格内容 // cell.setCellValue("学员考试成绩一览表"); //合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列 // sheet.addMergedRegion(new CellRangeAddress(0,0, 0,3)); //在sheet里创建第二行 HSSFRow row2 = sheet.createRow(0); //创建单元格并设置单元格内容 //获取标题的长度 for (int i = 0; i < biaoti.length; i++) { row2.createCell(i).setCellValue(biaoti[i]); } //将传入的string转换为json // JSONObject obj = JSON.parseObject(json); // JSONArray topics = obj.getJSONArray("topics"); JSONArray topics = JSON.parseArray(json); //在sheet里创建第N行 for (int i = 0; i < topics.size(); i++) { JSONObject obj1 = JSON.parseObject(topics.getString(i)); HSSFRow row = sheet.createRow((int) i + 1); row.createCell(0).setCellValue(obj1.getString("resourceid")); row.createCell(1).setCellValue(obj1.getString("title")); row.createCell(2).setCellValue(obj1.getString("resourceclass")); row.createCell(3).setCellValue(obj1.getString("pubunitid")); row.createCell(4).setCellValue(obj1.getString("shenqingdate")); row.createCell(5).setCellValue(obj1.getString("shenqingstatus")); } //.....省略部分代码 //输出Excel文件 SimpleDateFormat sFormat=new SimpleDateFormat("yyyyMMddHHmmss"); Calendar calendar=Calendar.getInstance(); //获取系统当前时间并将其转换为string类型 String name=sFormat.format(calendar.getTime()); FileOutputStream output=new FileOutputStream(Route+name+".xls"); wb.write(output); output.flush(); System.out.println( name+".xls"); return name+".xls"; } public static String TJgoing(HttpServletResponse response,String[] biaoti,String json,String Route) throws IOException { //创建HSSFWorkbook对象(excel的文档对象) HSSFWorkbook wb = new HSSFWorkbook(); //建立新的sheet对象(excel的表单) HSSFSheet sheet = wb.createSheet("资源统计"); sheet.setDefaultColumnWidth(30); //在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个 HSSFRow row1 = sheet.createRow(0); //创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个 // HSSFCell cell = row1.createCell(0); //设置单元格内容 // cell.setCellValue("学员考试成绩一览表"); //合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列 // sheet.addMergedRegion(new CellRangeAddress(0,0, 0,3)); //在sheet里创建第二行 HSSFRow row2 = sheet.createRow(0); //创建单元格并设置单元格内容 //获取标题的长度 for (int i = 0; i < biaoti.length; i++) { row2.createCell(i).setCellValue(biaoti[i]); } //将传入的string转换为json JSONObject obj = JSON.parseObject(json); JSONArray topics = obj.getJSONArray("topics"); //在sheet里创建第N行 for (int i = 0; i < topics.size(); i++) { JSONObject obj1 = JSON.parseObject(topics.getString(i)); HSSFRow row = sheet.createRow((int) i + 1); row.createCell(0).setCellValue(obj1.getString("resourceid")); row.createCell(1).setCellValue(obj1.getString("title")); row.createCell(2).setCellValue(obj1.getString("mulu")); row.createCell(3).setCellValue(obj1.getString("resourceclass")); row.createCell(4).setCellValue(obj1.getString("pubdate")); row.createCell(5).setCellValue(obj1.getString("pubunitid")); row.createCell(6).setCellValue(obj1.getString("datasources")); } //.....省略部分代码 //输出Excel文件 SimpleDateFormat sFormat=new SimpleDateFormat("yyyyMMddHHmmss"); Calendar calendar=Calendar.getInstance(); //获取系统当前时间并将其转换为string类型 String name=sFormat.format(calendar.getTime()); FileOutputStream output=new FileOutputStream(Route+name+".xls"); wb.write(output); output.flush(); System.out.println( name+".xls"); return name+".xls"; } public static String ShuJuKugoing(HttpServletResponse response,String[] biaoti,String json,String Route) throws IOException { //创建HSSFWorkbook对象(excel的文档对象) HSSFWorkbook wb = new HSSFWorkbook(); //建立新的sheet对象(excel的表单) HSSFSheet sheet = wb.createSheet("数据库表"); sheet.setDefaultColumnWidth(30); //在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个 HSSFRow row1 = sheet.createRow(0); //创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个 // HSSFCell cell = row1.createCell(0); //设置单元格内容 // cell.setCellValue("学员考试成绩一览表"); //合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列 // sheet.addMergedRegion(new CellRangeAddress(0,0, 0,3)); //在sheet里创建第二行 HSSFRow row2 = sheet.createRow(0); //创建单元格并设置单元格内容 //获取标题的长度 for (int i = 0; i < biaoti.length; i++) { row2.createCell(i).setCellValue(biaoti[i]); } //将传入的string转换为json JSONObject obj = JSON.parseObject(json); JSONArray topics = obj.getJSONArray("topics"); //在sheet里创建第N行 for (int i = 0; i < topics.size(); i++) { JSONObject obj1 = JSON.parseObject(topics.getString(i)); HSSFRow row = sheet.createRow((int) i + 1); for (int j = 0; j < biaoti.length; j++) { row.createCell(j).setCellValue(obj1.getString(biaoti[j])); } } //.....省略部分代码 //输出Excel文件 SimpleDateFormat sFormat=new SimpleDateFormat("yyyyMMddHHmmss"); Calendar calendar=Calendar.getInstance(); //获取系统当前时间并将其转换为string类型 String name=sFormat.format(calendar.getTime()); FileOutputStream output=new FileOutputStream(Route+name+".xls"); wb.write(output); output.flush(); System.out.println( name+".xls"); return name+".xls"; } public static String SystemUrlgoing(HttpServletResponse response,String[] biaoti,String json,String Route) throws IOException { //创建HSSFWorkbook对象(excel的文档对象) HSSFWorkbook wb = new HSSFWorkbook(); //建立新的sheet对象(excel的表单) HSSFSheet sheet = wb.createSheet("资源地址"); sheet.setDefaultColumnWidth(30); //在sheet里创建第一行,参数为行索引(excel的行),可以是0~65535之间的任何一个 HSSFRow row1 = sheet.createRow(0); //创建单元格(excel的单元格,参数为列索引,可以是0~255之间的任何一个 // HSSFCell cell = row1.createCell(0); //设置单元格内容 // cell.setCellValue("学员考试成绩一览表"); //合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列 // sheet.addMergedRegion(new CellRangeAddress(0,0, 0,3)); //在sheet里创建第二行 HSSFRow row2 = sheet.createRow(0); //创建单元格并设置单元格内容 //获取标题的长度 for (int i = 0; i < biaoti.length; i++) { row2.createCell(i).setCellValue(biaoti[i]); } //将传入的string转换为json // JSONObject obj = JSON.parseObject(json); // JSONArray topics = obj.getJSONArray("topics"); JSONArray topics = JSON.parseArray(json); //在sheet里创建第N行 for (int i = 0; i < topics.size(); i++) { JSONObject obj1 = JSON.parseObject(topics.getString(i)); HSSFRow row = sheet.createRow((int) i + 1); row.createCell(0).setCellValue(obj1.getString("resourceid")); row.createCell(1).setCellValue(obj1.getString("title")); row.createCell(2).setCellValue(obj1.getString("firstMapUrl")); row.createCell(3).setCellValue(obj1.getString("token")); } //.....省略部分代码 //输出Excel文件 SimpleDateFormat sFormat=new SimpleDateFormat("yyyyMMddHHmmss"); Calendar calendar=Calendar.getInstance(); //获取系统当前时间并将其转换为string类型 String name=sFormat.format(calendar.getTime()); FileOutputStream output=new FileOutputStream(Route+name+".xls"); wb.write(output); output.flush(); System.out.println( name+".xls"); return name+".xls"; } }