原博:https://www.cnblogs.com/hanfengyeqiao/p/9471694.html#4221516
因为与原博传入的数据形式不同,所以成为了梯形输出.需要自己进行输出整理修改.
导出.
@RequestMapping(value = "/export")
public String getExport(String arr) throws SQLException {
/*arr 格式:{index:1,time:2018-02-27 00:00:00····},{},{}*/
arr=arr.substring(arr.indexOf("{")+1,arr.length());//去掉前面多余的
arr=arr.replace("{", "");
String[] split = arr.split(",|}");
String key,kvalue;
List<Map<String, String>> exportData = new ArrayList<Map<String, String>>();
Map<String, String> row1 = null;
String fristFile = split[0].substring(0, split[0].indexOf(":"));//得到第一个字段.
for (int i = 0 ;i< split.length;i++) {
key=split[i].substring(0, split[i].indexOf(":"));
kvalue =split[i].substring(split[i].indexOf(":")+1, split[i].length());
if(key.equals(fristFile)) {
if(i != 0) {exportData.add(row1);}
row1 = new LinkedHashMap<String, String>();
}
row1.put(key, kvalue);
}
exportData.add(row1);
LinkedHashMap<String, String> map = new LinkedHashMap<String, String>();
for (int i = 0 ;i< split.length;i++) {
key=split[i].substring(0, split[i].indexOf(":"));
kvalue =split[i].substring(split[i].indexOf(":")+1, split[i].length());
if(!map.containsKey(key)) {
map.put(key,key);
}
}
String outPutPath=initializationFileService.getProjectDataFile().getPath();
String fileName ="文件导出"+ new SimpleDateFormat("yyyyMMddHHmm'.txt'").format(new Date());
ExportCSV.createCSVFile(exportData, map, outPutPath, fileName);
System.err.println("下载到了:"+outPutPath);
return outPutPath;
}
导入.
@RequestMapping(value = "/acquire",method=RequestMethod.POST)
public LinkedList<LtePRBAnalysisFile21Model> getAcquire(HttpServletRequest request, @RequestParam("files") MultipartFile[] files) throws SQLException, IOException {
System.out.println("1getContentType:"+files[0].getContentType()); //text/plain
String originalFilename = files[0].getOriginalFilename();
File saveFile = new File("D:\\" + originalFilename);
String absolutePath = saveFile.getAbsolutePath();// 文件绝对路径
byte[] bytes = files[0].getBytes();
Path path = Paths.get(saveFile.getPath());
Files.write(path, bytes);
//读文件.
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(absolutePath),"GB2312"));
LinkedList<String[]> valuesArr=new LinkedList<String[]>();
LinkedList<LtePRBAnalysisFile21Model> list=new LinkedList<LtePRBAnalysisFile21Model>();
int i=0;
CsvReader csvReader = new CsvReader(br);
String[] headers=null;
while (csvReader.readRecord()) {
i++;
if(i==1) {
headers=csvReader.getValues();
}else {
String[] values = csvReader.getValues();
valuesArr.add(values);
}
}
// System.out.println(valuesArr.size()+"=size =="+i+"行");
String formDate = originalFilename.substring(0, originalFilename.indexOf("."));
list=getCsvQueryService.AcquireQuery(list, formDate, headers, valuesArr);
/* for (LtePRBAnalysisFile21Model LtePRBAnalysisFile21Model : list) {
System.out.println(LtePRBAnalysisFile21Model.toString());
}*/
return list;
}