From ff76f0457d8ab4f8fc5698be0bf3299498f5e65e Mon Sep 17 00:00:00 2001 From: "zhaokaiyao@91isoft.com" <6922339zky> Date: Thu, 4 Nov 2021 15:21:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=BF=E7=AD=96=E5=BE=81=E6=B1=82=E6=84=8F?= =?UTF-8?q?=E8=A7=81=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adc/da/workFlow/common/ExportExcel.java | 99 +++++++++++++++++++ .../controller/PolicyWorkFlowController.java | 53 ++++++++++ 2 files changed, 152 insertions(+) create mode 100644 adc-da-activiti/src/main/java/com/adc/da/workFlow/common/ExportExcel.java create mode 100644 adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/PolicyWorkFlowController.java diff --git a/adc-da-activiti/src/main/java/com/adc/da/workFlow/common/ExportExcel.java b/adc-da-activiti/src/main/java/com/adc/da/workFlow/common/ExportExcel.java new file mode 100644 index 00000000..0460891c --- /dev/null +++ b/adc-da-activiti/src/main/java/com/adc/da/workFlow/common/ExportExcel.java @@ -0,0 +1,99 @@ +package com.adc.da.workFlow.common; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang.StringUtils; +import org.apache.poi.ss.usermodel.*; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import sun.awt.SunHints; + + +import java.util.List; +import java.util.Map; + +public class ExportExcel { + + private String header; + + private static String[] property; + Workbook workbook=new XSSFWorkbook(); + + public void setProperty(String property){ + this.property=property.split(","); + } + + public void setHeader(String header){ + this.header=header; + } + + public Workbook getWorkBook(T dataJson) throws Exception { + JSONArray dataArray = JSONObject.parseArray(dataJson.toString()); + + CellStyle cellStyle = workbook.createCellStyle();//初始化单元格格式对象 + cellStyle.setAlignment(HorizontalAlignment.CENTER); + + + Sheet sheet = workbook.createSheet(); + sheet.setDefaultColumnWidth(25); + + createHeader(sheet,header); + + createData(sheet,dataArray); + + return workbook; + } + + + public static void createHeader(Sheet sheet, String header){ + + Row rowHeader = sheet.createRow(0);//开始创建标题行 + if (StringUtils.isNotBlank(header)) { + String[] headerArr = header.split(","); + for (int i=0;i < headerArr.length; i++) { + + rowHeader.createCell(i).setCellValue(headerArr[i]); + + } + } + } + + + + public static void createData(Sheet sheet, List data) throws Exception{ + + if (data != null && !data.isEmpty()) { + for (int i=0;i < data.size(); i++) { + + Row row = sheet.createRow(i+1); + + int sheetNum = 0; + + JSONObject datumJson =(JSONObject)data.get(i); + /** + * 遍历jsonObject值填入一行的单元格中 + */ + for (String s : property) { + String value = datumJson.getString(s); + row.createCell(sheetNum).setCellValue(value); + sheetNum++; + } +// Class cls = importDto.getClass(); +// Field[] fields = cls.getDeclaredFields(); +// for (Field field : fields) { +// field.setAccessible(true); +// if (field.get(importDto)!=null){ +// String value = field.get(importDto).toString(); +// row.createCell(sheetNum).setCellValue(value); +// }else { +// row.createCell(sheetNum).setCellValue(""); +// } +// sheetNum++; +// } + } + } + } + + + + +} diff --git a/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/PolicyWorkFlowController.java b/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/PolicyWorkFlowController.java new file mode 100644 index 00000000..05d54412 --- /dev/null +++ b/adc-da-activiti/src/main/java/com/adc/da/workFlow/controller/PolicyWorkFlowController.java @@ -0,0 +1,53 @@ +package com.adc.da.workFlow.controller; + +import com.adc.da.common.ReadExcel; +import com.adc.da.workFlow.common.ExportExcel; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.google.gson.JsonObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.usermodel.Workbook; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.LinkedHashMap; +import java.util.Map; + + +@RestController +@RequestMapping("/${restPath}/policy/activiti") +@Api(tags = "政策征求意见和重点法规或政策认证流程") +public class PolicyWorkFlowController { + + + /** + * 政策征求意见导出 + */ + @PostMapping("/exportExcel") + @ApiOperation("导出政策征求意见为excel") + public void exportExcel(@RequestBody String dataJson, HttpServletResponse response, HttpServletRequest request) throws Exception { + JSONObject data = JSONObject.parseObject(dataJson); + JSONArray info = data.getJSONArray("dataList"); + + + ExportExcel exportExcel = new ExportExcel(); + exportExcel.setHeader("章节编号,章节名称,修改前,修改后,修改理由,原因,提出部门,提出人"); + exportExcel.setProperty("chapterNumber,chapterName,oldText,newText,changeReason,reason,department,responUserName"); + Workbook workbook=exportExcel.getWorkBook(info); + + + response.setContentType("application/vnd.ms-excel"); + response.setHeader("Content-Disposition", + "attachment; filename=" + ReadExcel.encodeFileName("政策征求意见"+".xlsx",request)); +// response.setContentType("application/force-download"); + ServletOutputStream outputStream = response.getOutputStream(); + workbook.write(outputStream); + outputStream.flush(); + + } + +}