From 36203a854c6d1958549ebf65ba234561ab5271b5 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Mon, 26 Sep 2022 10:58:17 +0800
Subject: [PATCH] 添加空气质量报告功能
---
screen-api/src/main/java/com/moral/api/utils/ExcelUtils.java | 38 +
screen-api/src/main/java/com/moral/api/mapper/ExcelMapper.java | 10
screen-api/pom.xml | 16
screen-api/src/main/java/com/moral/api/service/ExcelService.java | 25 +
screen-api/src/main/java/com/moral/api/controller/ExcelController.java | 89 ++++
screen-api/src/main/java/com/moral/api/pojo/vo/excel/ExcelVo.java | 68 +++
screen-api/src/main/java/com/moral/api/pojo/bo/ExcelBO.java | 20
screen-api/src/main/java/com/moral/api/service/impl/ExcelServiceImpl.java | 950 +++++++++++++++++++++++++++++++++++++++++++++
screen-api/src/main/java/com/moral/api/entity/TbExcel.java | 25 +
9 files changed, 1,241 insertions(+), 0 deletions(-)
diff --git a/screen-api/pom.xml b/screen-api/pom.xml
index 7470fd8..21b3486 100644
--- a/screen-api/pom.xml
+++ b/screen-api/pom.xml
@@ -21,6 +21,22 @@
<artifactId>persistence-api</artifactId>
<version>1.0</version>
</dependency>
+ <!-- easyexcel-->
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi</artifactId>
+ <version>4.0.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi-ooxml</artifactId>
+ <version>4.0.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi-ooxml-schemas</artifactId>
+ <version>4.0.1</version>
+ </dependency>
</dependencies>
<build>
diff --git a/screen-api/src/main/java/com/moral/api/controller/ExcelController.java b/screen-api/src/main/java/com/moral/api/controller/ExcelController.java
new file mode 100644
index 0000000..1425868
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/controller/ExcelController.java
@@ -0,0 +1,89 @@
+package com.moral.api.controller;
+
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+
+import com.moral.api.pojo.bo.ExcelBO;
+import com.moral.api.pojo.vo.excel.ExcelVo;
+import com.moral.api.service.ExcelService;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.constant.ResultMessage;
+import com.moral.util.WebUtils;
+
+@Slf4j
+@RestController
+@RequestMapping("/excel")
+public class ExcelController {
+
+ @Autowired
+ private ExcelService excelService;
+
+ /**
+ * ������
+ * @param request
+ * @return
+ * @throws IOException
+ */
+ @PostMapping("excelImport")
+ public ResultMessage excelImport(HttpServletRequest request) throws IOException {
+ Map<String, Object> params = WebUtils.getParametersStartingWith(request, null);
+ if (!params.containsKey("time") || !params.containsKey("code") || params.containsKey("data")){
+ return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+ }
+ List<MultipartFile> files = ((MultipartHttpServletRequest) request).getFiles("files");
+ ExcelBO excelBO = excelService.importTemplate(files, params);
+ return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),excelBO);
+ }
+
+
+ /**
+ * ������
+ * @param id
+ * @return
+ */
+ @GetMapping("/excelExport")
+ public ResultMessage excelExport(Integer id){
+ if (id==null){
+ return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+ }
+ ExcelVo export = excelService.export(id);
+ if (export==null){
+ return ResultMessage.fail(ResponseCodeEnum.TARGET_IS_NULL.getCode(), ResponseCodeEnum.TARGET_IS_NULL.getMsg());
+ }
+
+ return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),export);
+ }
+
+ /**
+ * ������
+ * @param startTime
+ * @param code
+ * @param endTime
+ * @return
+ */
+ @GetMapping("/selectExcel")
+ public ResultMessage selectExcel(String startTime,String code, String endTime){
+ if (startTime == null || code==null || endTime==null){
+ return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+ }
+ List<ExcelBO> excelBOS = excelService.excelSelect(startTime, code, endTime);
+ if (excelBOS==null){
+ return ResultMessage.fail(ResponseCodeEnum.TARGET_IS_NULL.getCode(), ResponseCodeEnum.TARGET_IS_NULL.getMsg());
+ }
+ return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(),excelBOS);
+ }
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/entity/TbExcel.java b/screen-api/src/main/java/com/moral/api/entity/TbExcel.java
new file mode 100644
index 0000000..27f3ec2
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/entity/TbExcel.java
@@ -0,0 +1,25 @@
+package com.moral.api.entity;
+
+
+import lombok.Data;
+
+import java.util.Date;
+
+import javax.persistence.Table;
+
+
+@Data
+@Table(name = "tb_excel")
+public class TbExcel {
+ private Integer id;
+
+ private String value;
+
+ private Date time;
+
+ private String code;
+
+
+ private Date date;
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/mapper/ExcelMapper.java b/screen-api/src/main/java/com/moral/api/mapper/ExcelMapper.java
new file mode 100644
index 0000000..b50a94a
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/mapper/ExcelMapper.java
@@ -0,0 +1,10 @@
+package com.moral.api.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.moral.api.entity.TbExcel;
+
+
+public interface ExcelMapper extends BaseMapper<TbExcel> {
+
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/bo/ExcelBO.java b/screen-api/src/main/java/com/moral/api/pojo/bo/ExcelBO.java
new file mode 100644
index 0000000..5f11771
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/bo/ExcelBO.java
@@ -0,0 +1,20 @@
+package com.moral.api.pojo.bo;
+
+import lombok.Data;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+@Data
+public class ExcelBO {
+
+ private Integer id;
+
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+ private Date time;
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+ private Date date;
+
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/vo/excel/ExcelVo.java b/screen-api/src/main/java/com/moral/api/pojo/vo/excel/ExcelVo.java
new file mode 100644
index 0000000..ca4b536
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/vo/excel/ExcelVo.java
@@ -0,0 +1,68 @@
+package com.moral.api.pojo.vo.excel;
+
+
+import lombok.Data;
+
+import java.util.List;
+import java.util.Map;
+
+
+@Data
+public class ExcelVo {
+ //������������
+ private String quality;
+ //���������������
+ private String su;
+ //������������
+ private Integer count;
+
+ private String PM10;
+ private String PM25;
+ private String SO2;
+ private String NO2;
+ private String CO;
+ private String O3_8H;
+ private String PM25m;
+ private String PM25ms;
+ private String O3m;
+ private String O3ms;
+ private String AQIm;
+ private String AQIms;
+ private String PM25y;
+ private String PM25ys;
+ private String O3y;
+ private String O3ys;
+ private String AQIy;
+ private String AQIys;
+
+ private String name1;
+ private String name2;
+ private String name3;
+ private String name4;
+ private String name5;
+ private String name6;
+
+ private List<Map<String,Object>> list1;
+
+ private List<Map<String,Object>> list2;
+
+ private List<Map<String,Object>> list3;
+
+ private List<Map<String,Object>> list4;
+
+ private List<Map<String,Object>> list5;
+
+
+ private String time;
+
+ private String time1;
+
+
+ private String code1;
+
+ private String diff1;
+
+ private String code2;
+
+ private String diff2;
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/ExcelService.java b/screen-api/src/main/java/com/moral/api/service/ExcelService.java
new file mode 100644
index 0000000..0b1e330
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/service/ExcelService.java
@@ -0,0 +1,25 @@
+package com.moral.api.service;
+
+
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+import com.moral.api.pojo.bo.ExcelBO;
+
+import com.moral.api.pojo.vo.excel.ExcelVo;
+
+
+public interface ExcelService {
+
+ public ExcelBO importTemplate(List<MultipartFile> files, Map<String, Object> params) throws IOException;
+
+
+ public ExcelVo export(Integer id);
+
+
+ public List<ExcelBO> excelSelect(String startTime,String code,String endTime);
+
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/ExcelServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/ExcelServiceImpl.java
new file mode 100644
index 0000000..99491f1
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/service/impl/ExcelServiceImpl.java
@@ -0,0 +1,950 @@
+package com.moral.api.service.impl;
+
+
+import org.apache.poi.hssf.usermodel.HSSFRow;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.xssf.usermodel.XSSFRow;
+import org.apache.poi.xssf.usermodel.XSSFSheet;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.moral.api.entity.TbExcel;
+import com.moral.api.mapper.ExcelMapper;
+import com.moral.api.pojo.bo.ExcelBO;
+
+import com.moral.api.pojo.vo.excel.ExcelVo;
+import com.moral.api.service.ExcelService;
+import com.moral.api.utils.ExcelUtils;
+import com.moral.pojo.AQI;
+import com.moral.util.AQIUtils;
+import com.moral.util.DateUtils;
+
+
+@Service
+public class ExcelServiceImpl implements ExcelService {
+
+ @Autowired
+ private ExcelMapper excelMapper;
+
+ /**
+ * ������
+ * @param files
+ * @param params
+ * @return
+ * @throws IOException
+ */
+ @Override
+ public ExcelBO importTemplate(List<MultipartFile> files, Map<String, Object> params) throws IOException {
+ String time = (String) params.get("time");
+ String code = (String) params.get("code");
+ String time1 = (String) params.get("date");
+ Date date = DateUtils.getDate(time, "yyyy-MM-dd");
+ Date date1 = DateUtils.getDate(time1, "yyyy-MM-dd");
+ ExcelBO excelBO = new ExcelBO();
+ QueryWrapper<TbExcel> wrapper = new QueryWrapper<>();
+ wrapper.eq("time",date).eq("code",code);
+ TbExcel excel = excelMapper.selectOne(wrapper);
+ if (excel==null){
+ TbExcel excel1 = new TbExcel();
+ HashMap<String, Object> map = new HashMap<>();
+ MultipartFile file1 = files.get(0);
+ Map<String, Object> map1 = getMap1(file1);
+ map.put("c1",map1);
+ MultipartFile file2 = files.get(1);
+ Map<String, Object> map2 = getMap2(file2);
+ map.put("c2",map2);
+ MultipartFile file3 = files.get(2);
+ Map<String, Object> map3 = getMap3(file3);
+ map.put("c3",map3);
+ MultipartFile file4 = files.get(3);
+ Map<String, Object> map4 = getMap4(file4);
+ map.put("c4",map4);
+ MultipartFile file5 = files.get(4);
+ Map<String, Object> map5 = getMap5(file5);
+ map.put("c5",map5);
+ MultipartFile file6 = files.get(5);
+ Map<String, Object> map6 = getMap6(file6);
+ map.put("c6",map6);
+ String s = JSON.toJSONString(map);
+ excel1.setValue(s);
+ excel1.setTime(date);
+ excel1.setCode(code);
+ excel1.setDate(date1);
+ excelMapper.insert(excel1);
+ excelBO.setId(excel1.getId());
+ excelBO.setTime(excel1.getTime());
+ excelBO.setDate(excel1.getDate());
+
+ }else {
+ HashMap<String, Object> map = new HashMap<>();
+ MultipartFile file1 = files.get(0);
+ Map<String, Object> map1 = getMap1(file1);
+ map.put("c1",map1);
+ MultipartFile file2 = files.get(1);
+ Map<String, Object> map2 = getMap2(file2);
+ map.put("c2",map2);
+ MultipartFile file3 = files.get(2);
+ Map<String, Object> map3 = getMap3(file3);
+ map.put("c3",map3);
+ MultipartFile file4 = files.get(3);
+ Map<String, Object> map4 = getMap4(file4);
+ map.put("c4",map4);
+ MultipartFile file5 = files.get(4);
+ Map<String, Object> map5 = getMap5(file5);
+ map.put("c5",map5);
+ MultipartFile file6 = files.get(5);
+ Map<String, Object> map6 = getMap6(file6);
+ map.put("c6",map6);
+ String s = JSON.toJSONString(map);
+ excel.setValue(s);
+ excelMapper.updateById(excel);
+ excelBO.setId(excel.getId());
+ excelBO.setTime(excel.getTime());
+ excelBO.setDate(excel.getDate());
+ }
+ return excelBO;
+ }
+
+ /**
+ * ������
+ * @param id
+ * @return
+ */
+ @Override
+ public ExcelVo export(Integer id) {
+
+
+ HashMap<String, Object> map1 = new HashMap<>();
+ ArrayList<Map<String,Object>> list1 = new ArrayList<>();
+ ArrayList<Map<String,Object>> list2 = new ArrayList<>();
+ ArrayList<Map<String,Object>> list3 = new ArrayList<>();
+ ArrayList<Map<String,Object>> list4 = new ArrayList<>();
+ ArrayList<Map<String,Object>> list5= new ArrayList<>();
+ ExcelVo excelVo = new ExcelVo();
+ //������������
+ TbExcel excel = excelMapper.selectById(id);
+ String value = excel.getValue();
+
+ JSONObject jsonObject = JSON.parseObject(value);
+ Map map4 = JSON.parseObject(value, Map.class);
+ Set sets = map4.keySet();
+ for (Object set : sets) {
+ if (set.equals("c1")){
+ Object o = map4.get(set);
+ String s = JSON.toJSONString(o);
+ Map map5 = JSON.parseObject(s, Map.class);
+ Set set1s = map5.keySet();
+ for (Object set1 : set1s) {
+ Object o1 = map5.get(set1);
+ String s1 = JSON.toJSONString(o1);
+ Map map6 = JSON.parseObject(s1, Map.class);
+ list1.add(map6);
+ }
+ }
+ if (set.equals("c2")){
+ Object o = map4.get(set);
+ String s = JSON.toJSONString(o);
+ Map map5 = JSON.parseObject(s, Map.class);
+ Set set1s = map5.keySet();
+ for (Object set1 : set1s) {
+ Object o1 = map5.get(set1);
+ String s1 = JSON.toJSONString(o1);
+ Map map6 = JSON.parseObject(s1, Map.class);
+ list2.add(map6);
+ }
+ }
+ if (set.equals("c3")){
+ Object o = map4.get(set);
+ String s = JSON.toJSONString(o);
+ Map map5 = JSON.parseObject(s, Map.class);
+ Set set1s = map5.keySet();
+ for (Object set1 : set1s) {
+ Object o1 = map5.get(set1);
+ String s1 = JSON.toJSONString(o1);
+ Map map6 = JSON.parseObject(s1, Map.class);
+ map6.put("place",set1);
+ list3.add(map6);
+ }
+ }
+ if (set.equals("c4")){
+ Object o = map4.get(set);
+ String s = JSON.toJSONString(o);
+ Map map5 = JSON.parseObject(s, Map.class);
+ Set set1s = map5.keySet();
+ for (Object set1 : set1s) {
+ Object o1 = map5.get(set1);
+ String s1 = JSON.toJSONString(o1);
+ Map map6 = JSON.parseObject(s1, Map.class);
+ String o2 = String.valueOf(map6.get("PM2_5m"));
+
+ String place = String.valueOf(map6.get("place"));
+ String o3m = String.valueOf(map6.get("O3m"));
+ String aqIm = String.valueOf(map6.get("AQIm")) ;
+ String o2s =String.valueOf(map6.get("PM2_5y"));
+ String O3ms = String.valueOf(map6.get("O3y")) ;
+ String aqIms = String.valueOf(map6.get("AQIy"));
+ String result = o2+"���"+o3m+"���"+aqIm+"���"+o2s+"���"+O3ms+"���"+aqIms;
+ map1.put(place,result);
+ list4.add(map6);
+ }
+ }
+ if (set.equals("c5")){
+ Object o = map4.get(set);
+ String s = JSON.toJSONString(o);
+ Map map5 = JSON.parseObject(s, Map.class);
+ Set set1s = map5.keySet();
+ for (Object set1 : set1s) {
+ Object o1 = map5.get(set1);
+ String s1 = JSON.toJSONString(o1);
+ Map map6 = JSON.parseObject(s1, Map.class);
+ list5.add(map6);
+ }
+ }
+ }
+
+ //���������������
+ String c4 = jsonObject.getString("c4");
+ JSONObject jsonObject3 = JSON.parseObject(c4);
+ String gxq = jsonObject3.getString("���������");
+ JSONObject jsonObject4 = JSON.parseObject(gxq);
+
+ String PM25m = jsonObject4.getString("PM2_5m");
+ String PM25ms = jsonObject4.getString("PM2_5ms");
+ String code1 = getString(PM25ms);
+ String O3m = jsonObject4.getString("O3m");
+ String O3ms = jsonObject4.getString("O3ms");
+ String code2 = getString(O3ms);
+ String AQIm = jsonObject4.getString("AQIm");
+ String AQIms = jsonObject4.getString("AQIms");
+ String code3 = getString(AQIms);
+ String PM25y = jsonObject4.getString("PM2_5y");
+ String PM25ys = jsonObject4.getString("PM2_5ys");
+ String code4 = getString(PM25ys);
+ String O3y = jsonObject4.getString("O3y");
+ String O3ys = jsonObject4.getString("O3ys");
+ String code5 = getString(O3ys);
+ String AQIy = jsonObject4.getString("AQIy");
+ String AQIys = jsonObject4.getString("AQIys");
+ String code6 = getString(AQIys);
+
+ StringBuilder sb1 = new StringBuilder();
+ StringBuilder sb2 = new StringBuilder();
+ StringBuilder sb3 = new StringBuilder();
+ StringBuilder sb4 = new StringBuilder();
+ StringBuilder sb5 = new StringBuilder();
+ StringBuilder sb6 = new StringBuilder();
+ Set<String> trims = map1.keySet();
+ for (String trim : trims) {
+ String o = (String) map1.get(trim);
+ String[] split = o.split("���");
+ if (Double.parseDouble(split[0])>Double.parseDouble(PM25m)){
+ sb1.append(trim.substring(3)+"���");
+ }
+ if (Double.parseDouble(split[1])>Double.parseDouble(O3m)){
+ sb2.append(trim.substring(3)+"���");
+ }
+ if (Double.parseDouble(split[2])<Double.parseDouble(AQIm)){
+ sb3.append(trim.substring(3)+"���");
+ }
+ if (Double.parseDouble(split[3])>Double.parseDouble(PM25y)){
+ sb4.append(trim.substring(3)+"���");
+ }
+ if (Double.parseDouble(split[4])>Double.parseDouble(O3y)){
+ sb5.append(trim.substring(3)+"���");
+ }
+ if (Double.parseDouble(split[5])<Double.parseDouble(AQIy)){
+ sb6.append(trim.substring(3)+"���");
+ }
+ }
+ String builder1 = getBuilder(sb1);
+ String builder2 = getBuilder(sb2);
+ String builder3 = getBuilder(sb3);
+ String builder4 = getBuilder(sb4);
+ String builder5 = getBuilder(sb5);
+ String builder6 = getBuilder(sb6);
+ excelVo.setName1(builder1);
+ excelVo.setName2(builder2);
+ excelVo.setName3(builder3);
+ excelVo.setName4(builder4);
+ excelVo.setName5(builder5);
+ excelVo.setName6(builder6);
+
+ //���������������
+ String c5 = jsonObject.getString("c5");
+ JSONObject jsonObject5 = JSON.parseObject(c5);
+ String cxq = jsonObject5.getString("������");
+ JSONObject jsonObject6 = JSON.parseObject(cxq);
+ String cxp = jsonObject6.getString("PM2_5y");
+ double CX = 0.0;
+ if (!cxp.equals("--")){
+ CX = Double.parseDouble(cxp);
+ }
+ double aDouble = 0.0;
+ if (!PM25y.equals("--")){
+ aDouble = Double.parseDouble(PM25y);
+ }
+ double v = aDouble - CX;
+ if (v>=0){
+ excelVo.setDiff1("������");
+ excelVo.setCode1(String.valueOf(new BigDecimal(v).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue()));
+ }else {
+ excelVo.setDiff1("������");
+ excelVo.setCode1(String.valueOf(new BigDecimal(Math.abs(v)).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue()));
+ }
+ String xcq = jsonObject5.getString("���������");
+ JSONObject jsonObject7 = JSON.parseObject(xcq);
+ String xcp = jsonObject7.getString("PM2_5y");
+ double XCP = 0.0;
+ if (!xcp.equals("--")){
+ XCP = Double.parseDouble(xcp);
+ }
+ double v1 = aDouble - XCP;
+ if (v1>=0){
+ excelVo.setDiff2("������");
+ excelVo.setCode2(String.valueOf(new BigDecimal(v1).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue()));
+ }else {
+ excelVo.setDiff2("������");
+ excelVo.setCode2(String.valueOf(new BigDecimal(Math.abs(v1)).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue()));
+
+ }
+
+
+
+ //���������������
+ String c1 = jsonObject.getString("c1");
+ JSONObject jsonObject1 = JSON.parseObject(c1);
+ //���������
+ String cx = jsonObject1.getString("���������");
+ JSONObject jsonObject2 = JSON.parseObject(cx);
+ String reTime = jsonObject2.getString("������");
+ Date reDate = DateUtils.getDate(reTime, "yyyy-MM-dd");
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy���MM���dd���");
+ String format = simpleDateFormat.format(reDate);
+ String substring = format.substring(5);
+ String CO = jsonObject2.getString("CO");
+ String NO2 = jsonObject2.getString("NO2");
+ String SO2 = jsonObject2.getString("SO2");
+ String PM10 = jsonObject2.getString("PM10");
+ String PM25 = jsonObject2.getString("PM2_5");
+ String s1 = jsonObject2.getString("SU");
+ String O8 = jsonObject2.getString("O3_8H");
+ String s3 = jsonObject2.getString("������������������");
+ String s4 = jsonObject2.getString("������������������");
+ int count = 0;
+ if (Double.parseDouble(PM10)<150){
+ count++;
+ }
+ if (Double.parseDouble(PM25)<75){
+ count++;
+ }
+ if (Double.parseDouble(SO2)<150){
+ count++;
+ }
+ if (Double.parseDouble(NO2)<80){
+ count++;
+ }
+ if (Double.parseDouble(CO)<4){
+ count++;
+ }
+ if (Double.parseDouble(O8)<160){
+ count++;
+ }
+
+
+
+// String res = substring+"������������������������"+s3+s4+"������������������������"+s1+"������������6������������" +
+// count+"������������PM10���"+PM10+"ug/m��������������150��g/m��);PM2.5���"+PM25+"��g/m��(���������75��g/m��);" +
+// "SO2���"+SO2+"��g/m��(���������150��g/m��);NO2���"+NO2+"��g/m��(���������80��g/m��);CO���"+CO+"mg/m��" +
+// "(���������4mg/m��);O3-8H���"+O8+"��g/m��(���������160��g/m��������";
+// String month ="���������������9���1���-13������PM2.5���������"+PM25m+"������/������������������"+code1+"%���" +
+// "������8���������������������90���������������������"+O3m+"������/������������������"+code2+"%���" +
+// "���������������������������������"+AQIm+"%���������"+code3+"%���";
+// String years= "���������������01���1���-"+substring+"������������PM2.5���������"+PM25y+"������/������������������"+code4+"%���" +
+// "������8���������������������90���������������������"+O3y+"������/������������������"+code5+"%���" +
+// "���������������������������������"+AQIy+"%���������"+code6+"%���";
+
+ excelVo.setQuality(s3+s4);
+ excelVo.setSu(s1);
+ excelVo.setCount(count);
+ excelVo.setPM10(PM10);
+ excelVo.setPM25(PM25);
+ excelVo.setSO2(SO2);
+ excelVo.setNO2(NO2);
+ excelVo.setCO(CO);
+ excelVo.setO3_8H(O8);
+ excelVo.setPM25m(PM25m);
+ excelVo.setPM25ms(code1);
+ excelVo.setO3m(O3m);
+ excelVo.setO3ms(code2);
+ excelVo.setAQIm(AQIm);
+ excelVo.setAQIms(code3);
+ excelVo.setPM25y(PM25y);
+ excelVo.setPM25ys(code4);
+ excelVo.setO3y(O3y);
+ excelVo.setO3ys(code5);
+ excelVo.setAQIy(AQIy);
+ excelVo.setAQIys(code6);
+ excelVo.setTime1(format);
+ excelVo.setTime(substring);
+
+ excelVo.setList1(list1);
+ excelVo.setList2(list2);
+ excelVo.setList3(list3);
+ excelVo.setList4(list4);
+ excelVo.setList5(list5);
+
+ return excelVo;
+ }
+
+ /**
+ * ������
+ * @param startTime
+ * @param code
+ * @return
+ */
+ @Override
+ public List<ExcelBO> excelSelect(String startTime, String code,String endTime) {
+ ArrayList<ExcelBO> excelBOS = new ArrayList<>();
+ QueryWrapper<TbExcel> wrapper = new QueryWrapper<>();
+ wrapper.between("time",startTime,endTime);
+ wrapper.eq("code",code);
+ List<TbExcel> tbExcels = excelMapper.selectList(wrapper);
+ if (tbExcels==null){
+ return null;
+ }
+ for (TbExcel tbExcel : tbExcels) {
+ ExcelBO excelBO = new ExcelBO();
+ BeanUtils.copyProperties(tbExcel,excelBO);
+ excelBOS.add(excelBO);
+ }
+
+ return excelBOS;
+ }
+
+
+ private String getBuilder(StringBuilder sb) {
+ if (sb.length() > 0 && sb.charAt(sb.length() - 1) == '���') {
+ sb.deleteCharAt(sb.length() -1 );
+ }else {
+ sb.append("���");
+ }
+ String s = sb.toString();
+ return s;
+ }
+
+ private String getString(String value) {
+ String code =null;
+ double aDouble = 0.0;
+ if (!value.equals("--")){
+ aDouble = Double.parseDouble(value);
+ }
+
+ if (aDouble>=0){
+ code = "������"+ value;
+ }else {
+ String s = value.substring(1);
+ code = "������"+ s;
+ }
+ return code;
+ }
+
+
+ private Map<String, Object> getMap4(MultipartFile file) throws IOException {
+ XSSFWorkbook workbook = new XSSFWorkbook(file.getInputStream());
+ HashMap<String, Object> rsMap = new HashMap<>();
+ XSSFSheet sheetAt = workbook.getSheetAt(0);
+ //������������������
+ int lastRowNum = sheetAt.getLastRowNum();
+ for (int i = 5; i <= lastRowNum; i++) {
+ XSSFRow row = sheetAt.getRow(i);
+ if (row == null) {
+ continue;
+ }
+ short lastCellNum = row.getLastCellNum();
+ if (lastCellNum < 10) {
+ continue;
+ }
+ Object[] objects = new Object[lastCellNum];
+ for (int j = 0; j < lastCellNum; j++) {
+ Cell cell = row.getCell(j);
+
+ Object value = ExcelUtils.getValue(cell);
+ objects[j] = value;
+ }
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("place", objects[0]);
+ map.put("PM2_5d", objects[1]);
+ map.put("PM2_5m", objects[2]);
+ map.put("PM2_5y", objects[3]);
+ map.put("PM2_5r", objects[4]);
+ map.put("PM2_5ms", objects[5]);
+ map.put("PM2_5ys", objects[6]);
+ map.put("PM2_5rs", objects[7]);
+ map.put("AQId", objects[8]);
+ map.put("AQIm", objects[9]);
+ map.put("AQIy", objects[10]);
+ map.put("AQIr", objects[11]);
+ map.put("AQIms", objects[12]);
+ map.put("AQIys", objects[13]);
+ map.put("AQIrs", objects[14]);
+ map.put("O3d", objects[15]);
+ map.put("O3m", objects[16]);
+ map.put("O3y", objects[17]);
+ map.put("O3r", objects[18]);
+ map.put("O3ms", objects[19]);
+ map.put("O3ys", objects[20]);
+ map.put("O3rs", objects[21]);
+ rsMap.put(objects[0].toString(), map);
+ }
+ return rsMap;
+ }
+ private Map<String, Object> getMap1(MultipartFile file) throws IOException {
+ XSSFWorkbook workbook = new XSSFWorkbook(file.getInputStream());
+ HashMap<String, Object> rsMap = new HashMap<>();
+ XSSFSheet sheetAt = workbook.getSheetAt(0);
+ //������������������
+ int lastRowNum = sheetAt.getLastRowNum();
+ for (int i = 3; i <= lastRowNum; i++) {
+ XSSFRow row = sheetAt.getRow(i);
+ if (row == null) {
+ continue;
+ }
+ short lastCellNum = row.getLastCellNum();
+ if (lastCellNum < 10) {
+ continue;
+ }
+ Object[] objects = new Object[lastCellNum];
+ for (int j = 0; j < lastCellNum; j++) {
+ Cell cell = row.getCell(j);
+ Object value = ExcelUtils.getValue(cell);
+ objects[j] = value;
+ }
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("place", objects[0]);
+ map.put("������", objects[1]);
+ map.put("SO2", objects[2]);
+ map.put("SO2���������", objects[3]);
+ map.put("NO2", objects[4]);
+ map.put("NO2���������", objects[5]);
+ map.put("PM10", objects[6]);
+ map.put("PM10���������", objects[7]);
+ map.put("CO", objects[8]);
+ map.put("CO���������", objects[9]);
+ map.put("O3_1h", objects[10]);
+ map.put("O3������������������", objects[11]);
+ map.put("O3_8H", objects[12]);
+ map.put("O3������������������", objects[13]);
+ map.put("PM2_5", objects[14]);
+ map.put("PM2_5���������", objects[15]);
+ map.put("AQI", objects[16]);
+ map.put("SU", objects[17]);
+ map.put("������������������", objects[18]);
+ map.put("������������������", objects[19]);
+
+ rsMap.put(objects[0].toString(), map);
+ }
+ return rsMap;
+ }
+
+
+ private Map<String, Object> getMap2(MultipartFile file) throws IOException {
+ XSSFWorkbook workbook = new XSSFWorkbook(file.getInputStream());
+ HashMap<String, Object> rsMap = new HashMap<>();
+ XSSFSheet sheetAt = workbook.getSheetAt(0);
+ //������������������
+ int lastRowNum = sheetAt.getLastRowNum();
+ for (int i = 3; i <= lastRowNum; i++) {
+ XSSFRow row = sheetAt.getRow(i);
+ if (row == null) {
+ continue;
+ }
+ short lastCellNum = row.getLastCellNum();
+ if (lastCellNum < 10) {
+ continue;
+ }
+ Object[] objects = new Object[lastCellNum];
+ for (int j = 0; j < lastCellNum; j++) {
+ Cell cell = row.getCell(j);
+ Object value = ExcelUtils.getValue(cell);
+ objects[j] = value;
+ }
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("place", objects[0]);
+ map.put("������", objects[1]);
+ map.put("SO2", objects[2]);
+ map.put("SO2���������", objects[3]);
+ map.put("NO2", objects[4]);
+ map.put("NO2���������", objects[5]);
+ map.put("PM10", objects[6]);
+ map.put("PM10���������", objects[7]);
+ map.put("CO", objects[8]);
+ map.put("CO���������", objects[9]);
+ map.put("O3_1h", objects[10]);
+ map.put("O3������������������", objects[11]);
+ map.put("O3_8H", objects[12]);
+ map.put("O3������������������", objects[13]);
+ map.put("PM2_5", objects[14]);
+ map.put("PM2_5���������", objects[15]);
+ map.put("AQI", objects[16]);
+ map.put("SU", objects[17]);
+ map.put("������������������", objects[18]);
+ map.put("������������������", objects[19]);
+
+ rsMap.put(objects[0].toString(), map);
+ }
+ return rsMap;
+ }
+
+ private Map<String, Object> getMap3(MultipartFile file) throws IOException {
+
+ XSSFWorkbook workbook = new XSSFWorkbook(file.getInputStream());
+ HashMap<String, List<Double>> rsMap = new HashMap<>();
+ HashMap<String, Map<String, List<Double>>> maps = new HashMap<>();
+ HashMap<String, List<Double>> map1 = new HashMap<>();
+ HashMap<String, List<Double>> map2 = new HashMap<>();
+
+
+
+ XSSFSheet sheetAt = workbook.getSheetAt(0);
+ //������������������
+ int lastRowNum = sheetAt.getLastRowNum();
+ for (int i = 3; i <= lastRowNum; i++) {
+ XSSFRow row = sheetAt.getRow(i);
+ if (row == null) {
+ continue;
+ }
+ short lastCellNum = row.getLastCellNum();
+ if (lastCellNum < 10) {
+ continue;
+ }
+ Object[] objects = new Object[lastCellNum];
+ for (int j = 0; j < lastCellNum; j++) {
+ Cell cell = row.getCell(j);
+ Object value = ExcelUtils.getValue(cell);
+ objects[j] = value;
+ }
+
+
+ //CO
+ double CO=0.0;
+ if (!(objects[8].toString()).equals("--")){
+ CO = Double.parseDouble(objects[8].toString());
+ }
+
+ //o3
+ double O3=0.0;
+ if (!(objects[12].toString()).equals("--")){
+ O3 = Double.parseDouble(objects[12].toString());
+ }
+
+
+
+
+
+ if (map1.get(objects[0].toString())==null){
+ ArrayList<Double> doubles1 = new ArrayList<>();
+ ArrayList<Double> doubles2 = new ArrayList<>();
+ doubles1.add(CO);
+ doubles2.add(O3);
+ map1.put(objects[0].toString(),doubles1);
+ map2.put(objects[0].toString(),doubles2);
+ }else {
+ List<Double> doubles = map1.get(objects[0].toString());
+ doubles.add(CO);
+ List<Double> lists = map2.get(objects[0].toString());
+ lists.add(O3);
+ }
+
+ if (maps.get(objects[0].toString())==null){
+ ArrayList<Double> list1 = new ArrayList<>();
+ ArrayList<Double> list2 = new ArrayList<>();
+ ArrayList<Double> list4 = new ArrayList<>();
+ ArrayList<Double> list3 = new ArrayList<>();
+ HashMap<String, List<Double>> ListHashMap = new HashMap<>();
+ if (!(objects[2].toString()).equals("--")){
+ double SO21 = Double.parseDouble(objects[2].toString());
+ list1.add(SO21);
+ }
+ if (!(objects[4].toString()).equals("--")){
+ double NO21 = Double.parseDouble(objects[4].toString());
+ list2.add(NO21);
+ }
+ if (!(objects[6].toString()).equals("--")){
+ double PM101 = Double.parseDouble(objects[6].toString());
+ list3.add(PM101);
+ }
+ if (!(objects[14].toString()).equals("--")){
+ double PM2_51 = Double.parseDouble(objects[14].toString());
+ list4.add(PM2_51);
+ }
+
+ ListHashMap.put("SO2",list1);
+ ListHashMap.put("NO2",list2);
+ ListHashMap.put("PM10",list3);
+ ListHashMap.put("PM2_5",list4);
+ maps.put(objects[0].toString(),ListHashMap);
+
+ }else {
+ Map<String, List<Double>> stringListMap = maps.get(objects[0].toString());
+ List<Double> SO2List = stringListMap.get("SO2");
+ if (!(objects[2].toString()).equals("--")){
+ double SO21 = Double.parseDouble(objects[2].toString());
+ SO2List.add(SO21);
+ }
+
+ List<Double> NO2List = stringListMap.get("NO2");
+ if (!(objects[4].toString()).equals("--")){
+ double NO21 = Double.parseDouble(objects[4].toString());
+ NO2List.add(NO21);
+ }
+
+ List<Double> PM10List = stringListMap.get("PM10");
+ if (!(objects[6].toString()).equals("--")){
+ double PM101 = Double.parseDouble(objects[6].toString());
+ PM10List.add(PM101);
+ }
+
+ List<Double> PM2_5List = stringListMap.get("PM2_5");
+ if (!(objects[14].toString()).equals("--")){
+ double PM2_51 = Double.parseDouble(objects[14].toString());
+ PM2_5List.add(PM2_51);
+ }
+
+ }
+ }
+ Set<String> strings2 = maps.keySet();
+ for (String s : strings2) {
+ Map<String, List<Double>> stringListMap = maps.get(s);
+ ArrayList<Double> list = new ArrayList<>();
+ Double so2 = getYz(stringListMap, "SO2");
+ Double no2 = getYz(stringListMap, "NO2");
+ Double pm10 = getYz(stringListMap, "PM10");
+ Double pm2_5 = getYz(stringListMap, "PM2_5");
+ list.add(so2);
+ list.add(no2);
+ list.add(pm10);
+ list.add(pm2_5);
+ rsMap.put(s,list);
+ }
+
+ HashMap<String, List<Double>> ListHashMap = new HashMap<>();
+ Set<String> strings = rsMap.keySet();
+ for (String string : strings) {
+ List<Double> list = getList(rsMap, map1, map2, string);
+ ListHashMap.put(string,list);
+ }
+ //������aqi������������������
+ HashMap<String, Object> resultMap = new HashMap<>();
+ Set<String> strings1 = ListHashMap.keySet();
+ for (String s : strings1) {
+ HashMap<String, Object> map = new HashMap<>();
+ List<Double> doubles = ListHashMap.get(s);
+ map.put("a21005",doubles.get(0));
+ map.put("a21026",doubles.get(1));
+ map.put("a21004",doubles.get(2));
+ map.put("a34002",doubles.get(3));
+ map.put("a34004",doubles.get(4));
+ map.put("a05024",doubles.get(5));
+ AQI aqi = AQIUtils.dailyAQI(map);
+ Integer aqiValue = aqi.getAQIValue();
+ map.put("AQI",aqiValue);
+ List<String> primaryPollutantNames = aqi.getPrimaryPollutantNames();
+ String primaryPollutant = "__";
+ if (!ObjectUtils.isEmpty(primaryPollutantNames)) {
+ primaryPollutant = primaryPollutantNames.stream().map(String::valueOf).collect(Collectors.joining(","));
+ }
+ map.put("SU", primaryPollutant);
+ resultMap.put(s,map);
+ }
+ return resultMap;
+ }
+
+ /**
+ * ���������������
+ * @param stringListMap
+ */
+ private Double getYz(Map<String, List<Double>> stringListMap,String code) {
+ List<Double> doubles = stringListMap.get(code);
+ double v = new BigDecimal(doubles.stream().collect(Collectors.averagingDouble(Double::doubleValue))).setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
+ return v;
+ }
+
+ /**
+ * ���������������������
+ * @param rsMap
+ * @param map1
+ * @param map2
+ * @param code
+ * @return
+ */
+ private List<Double> getList(HashMap<String, List<Double>> rsMap, HashMap<String, List<Double>> map1, HashMap<String, List<Double>> map2,String code) {
+ ArrayList<Double> list = new ArrayList<>();
+ List<Double> doubles1 = map1.get(code);
+ double percentiles1 = getPercentiles(doubles1, 0.95);
+ double co = getDouble(percentiles1);
+ list.add(co);
+ List<Double> doubles2 = map2.get(code);
+ double percentiles2 = getPercentiles(doubles2, 0.90);
+ List<Double> doubles3 = rsMap.get(code);
+ for (int i = 0; i < doubles3.size(); i++) {
+ double anInt = getInt(doubles3.get(i));
+ list.add(anInt);
+ }
+ double anInt = getInt(percentiles2);
+ list.add(anInt);
+ return list;
+ }
+
+ private Map<String, Object> getMap5(MultipartFile file) throws IOException {
+ XSSFWorkbook workbook = new XSSFWorkbook(file.getInputStream());
+ HashMap<String, Object> rsMap = new HashMap<>();
+ XSSFSheet sheetAt = workbook.getSheetAt(0);
+ //������������������
+ int lastRowNum = sheetAt.getLastRowNum();
+ for (int i = 5; i <= lastRowNum; i++) {
+ XSSFRow row = sheetAt.getRow(i);
+ if (row == null) {
+ continue;
+ }
+ short lastCellNum = row.getLastCellNum();
+ if (lastCellNum < 10) {
+ continue;
+ }
+ Object[] objects = new Object[lastCellNum];
+ for (int j = 0; j < lastCellNum; j++) {
+ Cell cell = row.getCell(j);
+ Object value = ExcelUtils.getValue(cell);
+ objects[j] = value;
+ }
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("place", objects[0]);
+ map.put("PM2_5d", objects[1]);
+ map.put("PM2_5m", objects[2]);
+ map.put("PM2_5y", objects[3]);
+ map.put("PM2_5r", objects[4]);
+ map.put("PM2_5ms", objects[5]);
+ map.put("PM2_5ys", objects[6]);
+ map.put("PM2_5rs", objects[7]);
+ map.put("AQId", objects[8]);
+ map.put("AQIm", objects[9]);
+ map.put("AQIy", objects[10]);
+ map.put("AQIr", objects[11]);
+ map.put("AQIms", objects[12]);
+ map.put("AQIys", objects[13]);
+ map.put("AQIrs", objects[14]);
+ map.put("O3d", objects[15]);
+ map.put("O3m", objects[16]);
+ map.put("O3y", objects[17]);
+ map.put("O3r", objects[18]);
+ map.put("O3ms", objects[19]);
+ map.put("O3ys", objects[20]);
+ map.put("O3rs", objects[21]);
+ rsMap.put(objects[0].toString(), map);
+ }
+ return rsMap;
+ }
+
+
+ private Map<String, Object> getMap6(MultipartFile file) throws IOException {
+// XSSFWorkbook workbook = new XSSFWorkbook(file.getInputStream());
+ HSSFWorkbook workbook= new HSSFWorkbook(file.getInputStream());
+ HashMap<String, Object> rsMap = new HashMap<>();
+// XSSFSheet sheetAt = workbook.getSheetAt(0);
+ HSSFSheet sheetAt = workbook.getSheetAt(0);
+ //������������������
+ int lastRowNum = sheetAt.getLastRowNum();
+ for (int i = 1; i <= lastRowNum; i++) {
+// XSSFRow row = sheetAt.getRow(i);
+ HSSFRow row = sheetAt.getRow(i);
+ if (row == null) {
+ continue;
+ }
+ short lastCellNum = row.getLastCellNum();
+
+ Object[] objects = new Object[lastCellNum];
+ for (int j = 0; j < lastCellNum; j++) {
+ Cell cell = row.getCell(j);
+ Object value = ExcelUtils.getValue(cell);
+ objects[j] = value;
+ }
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("������������", objects[0]);
+ map.put("������������", objects[1]);
+ map.put("������", objects[2]);
+ map.put("������", objects[3]);
+ map.put("���������", objects[4]);
+ map.put("������������", objects[5]);
+
+ rsMap.put(objects[0].toString()+i, map);
+ }
+ return rsMap;
+ }
+
+ /**
+ * excel������������
+ * @param list
+ * @param percentile
+ * @return
+ */
+ private static double getPercentiles(List<Double> list, double percentile) {
+ Collections.sort(list);
+ double x = (list.size()-1) * percentile;
+ int i = (int) x;
+ double j = x - i;
+ return (1 - j) * list.get(i) + j * list.get(i+1);
+ }
+
+
+ private static double getDouble(Double code1){
+ double floor1 = Math.floor(code1 * 10);
+ //������������������������������
+ double result = new BigDecimal(code1).setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
+
+
+ if (code1*100-floor1*10==5 && (result*10) % 2 !=0){
+ result= result-0.1;
+ }else {
+ result = result-0;
+ }
+
+ return result;
+ }
+
+
+
+ private static double getInt(Double code){
+ //���������������
+ double floor = Math.floor(code);
+ //������������
+ double round = Math.round(code);
+
+
+ if (code*10-(floor*10)==5 && round % 2 !=0){
+ round=round-1;
+ }else {
+ round=round-0;
+ }
+ return round;
+ }
+}
\ No newline at end of file
diff --git a/screen-api/src/main/java/com/moral/api/utils/ExcelUtils.java b/screen-api/src/main/java/com/moral/api/utils/ExcelUtils.java
new file mode 100644
index 0000000..d20dd4b
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/utils/ExcelUtils.java
@@ -0,0 +1,38 @@
+package com.moral.api.utils;
+
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.DateUtil;
+
+public class ExcelUtils {
+
+ public static Object getValue(Cell cell) {
+ Object value = null;
+ if (cell == null) {
+ return null;
+ }
+ switch (cell.getCellType()){
+ case STRING:
+ // ���������������
+ value = cell.getStringCellValue();
+ break;
+ case NUMERIC:
+ if (DateUtil.isCellDateFormatted(cell)){
+ value = cell.getDateCellValue();
+ }else {
+ // double������
+ value = cell.getNumericCellValue();
+ }
+ break;
+ case BOOLEAN:
+ // boolean������
+ value = cell.getBooleanCellValue();
+ break;
+ case FORMULA:
+ value = cell.getCellFormula();
+ break;
+ default:
+ break;
+ }
+ return value;
+ }
+}
\ No newline at end of file
--
Gitblit v1.8.0