Commit 57371b35 by Jbb

excel上传数据细节的考虑

parent b3f949c1
......@@ -73,6 +73,11 @@
<version>4.2.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4.1209.jre7</version>
......
......@@ -8,8 +8,8 @@ import com.founder.commonutils.viewEntity.TbStLayerData;
import com.founder.view.service.TbStLayerDataService;
import com.founder.view.service.TbStLayerService;
import io.swagger.annotations.Api;
import org.apache.ibatis.javassist.bytecode.ByteArray;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellType;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
......@@ -18,12 +18,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
......@@ -55,7 +51,7 @@ public class TbStLayerDataController {
public MapRestResult uploadDown(@RequestParam("excelFile") MultipartFile excelFile,@RequestParam(required = false) String xxzjbh,
@RequestParam(required = false) String name,@RequestParam(required = false) Double threshold,
@RequestParam(required = false) String lrr,@RequestParam(required = false) String lrdwdm,
@RequestParam(required = false) String lrdwmc,HttpServletResponse response) {
@RequestParam(required = false) String lrdwmc) {
TbStLayer tbStLayer = new TbStLayer();
List<TbStLayerData> pointLists = null;
String layerId = xxzjbh;
......@@ -76,15 +72,15 @@ public class TbStLayerDataController {
tbStLayerService.save(tbStLayer);
is = excelFile.getInputStream();
//InputStream is = new FileInputStream("C:\\Users\\JBB\\Desktop\\工作目录\\excel\\模板.xlsx");
pointLists = parseInputStream(layerId, is,response);
pointLists = parseInputStream(layerId, is);
//错误数据 上传归于同一个用户
}else{
is = excelFile.getInputStream();
pointLists = parseInputStream(layerId, is,response);
pointLists = parseInputStream(layerId, is);
}
return MapRestResult.build(200,"数据上传成功!",pointLists);
} catch (Exception e) {
//e.printStackTrace();
e.printStackTrace();
//如果保存数据、poi生成excel失败了就将之前的数据删除....
tbStLayerService.removeById(layerId);
accidentPointService.deleteByGlId(layerId);
......@@ -94,7 +90,7 @@ public class TbStLayerDataController {
}
//将解析excel的代码抽成一个方法 返回错误的数据 类型为list<tbStLayerData>
public List<TbStLayerData> parseInputStream(String layerId,InputStream is,HttpServletResponse response) throws Exception{
public List<TbStLayerData> parseInputStream(String layerId,InputStream is) throws Exception{
List<TbStLayerData> pointList = new ArrayList<>();
XSSFWorkbook sheets = new XSSFWorkbook(is);
XSSFSheet sheetAt = sheets.getSheetAt(0);
......@@ -123,32 +119,32 @@ public class TbStLayerDataController {
dateStr = row.getCell(3).getStringCellValue();
System.out.println(jd + "====" + wd + "====" + titleStr + "====" + dateStr);
}*/
//经纬度不能为空 否则报错 每一行都判断单元格是否为空 设置单元格格式 是因为不知道哪一个会为空
//经纬度不能为空 否则报错 每个单元格都判断单元格是否为空(设置单元格格式一律设置为string格式) 是因为不知道哪一个会为空
if (row.getCell(0) != null && row.getCell(1) != null) {
row.getCell(0).setCellType(Cell.CELL_TYPE_STRING);
row.getCell(1).setCellType(Cell.CELL_TYPE_STRING);
row.getCell(0).setCellType(CellType.STRING);
row.getCell(1).setCellType(CellType.STRING);
try {
//验证经纬度是否是八位小数以内
boolean isTrue = LngLonUtil.verifyLongAndLat(Double.parseDouble(row.getCell(0).getStringCellValue()), Double.parseDouble(row.getCell(1).getStringCellValue()));
if (isTrue) {//这里可以不用for循环 因为excel列数比较少
for (int j = 0; j < lastCellNum; j++) {
if (j == 0 && row.getCell(0) != null) {
row.getCell(0).setCellType(Cell.CELL_TYPE_STRING);
row.getCell(0).setCellType(CellType.STRING);
double x = Double.parseDouble(row.getCell(0).getStringCellValue());
point.setX(x);
}
if (j == 1 && row.getCell(1) != null) {
row.getCell(1).setCellType(Cell.CELL_TYPE_STRING);
row.getCell(1).setCellType(CellType.STRING);
double y = Double.parseDouble(row.getCell(1).getStringCellValue());
point.setY(y);
}
if (j == 2 && row.getCell(2) != null) {
row.getCell(2).setCellType(Cell.CELL_TYPE_STRING);
row.getCell(2).setCellType(CellType.STRING);
String title = row.getCell(2).getStringCellValue();
point.setTitle(title);
}
if (j == 3 && row.getCell(3) != null) {
row.getCell(3).setCellType(Cell.CELL_TYPE_STRING);
row.getCell(3).setCellType(CellType.STRING);
String dateTimeStr = row.getCell(3).getStringCellValue();
if(dateTimeStr != ""){
Date dateTime = df.parse(dateTimeStr);
......@@ -184,12 +180,12 @@ public class TbStLayerDataController {
point.setY(y);
}
if (j == 2 && row.getCell(2) != null) {
row.getCell(2).setCellType(Cell.CELL_TYPE_STRING);
row.getCell(2).setCellType(CellType.STRING);
String title = row.getCell(2).getStringCellValue();
point.setTitle(title);
}
if (j == 3 && row.getCell(3) != null) {
row.getCell(3).setCellType(Cell.CELL_TYPE_STRING);
row.getCell(3).setCellType(CellType.STRING);
String dateTimeStr = row.getCell(3).getStringCellValue();
if(dateTimeStr != ""){
Date dateTime = df.parse(dateTimeStr);
......@@ -207,11 +203,13 @@ public class TbStLayerDataController {
errorData.setxStr(row.getCell(0).getStringCellValue());
errorData.setyStr(row.getCell(1).getStringCellValue());
if(row.getCell(2) != null){
row.getCell(2).setCellType(CellType.STRING);
errorData.setTitle(row.getCell(2).getStringCellValue());
}else {
errorData.setTitle("");
}
if(row.getCell(3) != null){
row.getCell(3).setCellType(CellType.STRING);
errorData.setTimeStr(row.getCell(3).getStringCellValue());
}else {
errorData.setTimeStr("");
......@@ -219,7 +217,8 @@ public class TbStLayerDataController {
//errorData.setTimeStr(row.getCell(3).getStringCellValue());
pointList.add(errorData);
}
} else {
} else if(row.getCell(2) != null || row.getCell(3) != null) { //第三个或第四个单元格不为空
//第一个 二个 肯定为空 第三个和第四个要设置单元格格式统一使用字符串
TbStLayerData errorData = new TbStLayerData();
if (row.getCell(0) != null) {
errorData.setxStr(row.getCell(0).getStringCellValue());
......@@ -232,16 +231,19 @@ public class TbStLayerDataController {
errorData.setyStr("");
}
if (row.getCell(2) != null) {
row.getCell(2).setCellType(CellType.STRING);
errorData.setTitle(row.getCell(2).getStringCellValue());
} else {
errorData.setTitle("");
}
if (row.getCell(3) != null) {
row.getCell(3).setCellType(CellType.STRING);
errorData.setTimeStr(row.getCell(3).getStringCellValue());
} else {
errorData.setTimeStr("");
}
if(errorData.getxStr() != "" && errorData.getyStr() != "" && errorData.getTitle() != "" && errorData.getTimeStr() != ""){
//过滤空白行 数据只要有一个值 就返回
if(errorData.getxStr() != "" || errorData.getyStr() != "" || errorData.getTitle() != "" || errorData.getTimeStr() != ""){
pointList.add(errorData);
}
}
......
......@@ -10,24 +10,38 @@ import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.DateType;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.founder.commonutils.util.KeyUtil;
import com.founder.commonutils.viewEntity.TbStLayer;
import com.founder.commonutils.viewEntity.TbStLayerData;
import com.founder.view.ViewApplication;
import com.founder.view.service.TbStLayerService;
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.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.annotation.Resource;
import java.io.FileInputStream;
import java.io.InputStream;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author
* @since 2018/12/13
*/
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ViewApplication.class)
public class CodeGenerator {
@Test
......@@ -151,4 +165,21 @@ public class CodeGenerator {
}
}
}
@Resource
TbStLayerService tbStLayerService;
@Test
public void testParse() throws ParseException {
// DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// String dateTimeStr = "2021-07-01 12:59:36";
// Date dateTime = df.parse(dateTimeStr);
// System.out.println(dateTimeStr);
TbStLayer tbStLayer = new TbStLayer();
tbStLayer.setXxzjbh("12345");
tbStLayer.setName("Rose");
boolean b = tbStLayerService.saveOrUpdate(tbStLayer);
if(b){
System.out.println("插入成功!");
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment