读取Excel数据,将新的数据封装到Map集合中
package com.common.qr.util;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ReadExcelUtils {
public static <T> List<Map<String, String>> readExcel(String path) {
File file = new File(path);
FileInputStream fis = null;
Workbook workBook = null;
List<Map<String, String>> list = new ArrayList<>();
if (file.exists()) {
try {
fis = new FileInputStream(file);
workBook = WorkbookFactory.create(fis);
int numberOfSheets = workBook.getNumberOfSheets();
for (int s = 0; s < numberOfSheets; s++) {
Sheet sheetAt = workBook.getSheetAt(s);
int lastRowNum = sheetAt.getLastRowNum();
for (int r = 1; r <= lastRowNum; r++) {
Map<String, String> map = new HashMap<String, String>();
Row row = sheetAt.getRow(r);
if (row == null) {
continue;
} else {
int rowNum = row.getRowNum();
int numberOfCells = sheetAt.getRow(r).getPhysicalNumberOfCells();
for (int c = 0; c < numberOfCells; c++) {
Cell cell = row.getCell(c);
if (cell == null) {
continue;
} else {
int cellType = cell.getCellType();
switch (cellType) {
case Cell.CELL_TYPE_STRING:
map.put("hardwareName", sheetAt.getRow(rowNum).getCell(0).getStringCellValue());
map.put("imei", sheetAt.getRow(rowNum).getCell(1).getStringCellValue());
map.put("imsi", sheetAt.getRow(rowNum).getCell(2).getStringCellValue());
map.put("hardwareType", sheetAt.getRow(rowNum).getCell(3).getStringCellValue());
map.put("hydrantName", sheetAt.getRow(rowNum).getCell(4).getStringCellValue());
map.put("hydrantNumber", sheetAt.getRow(rowNum).getCell(5).getStringCellValue());
break;
}
}
}
}
list.add(map);
}
}
System.out.println(Arrays.asList(list));
if (fis != null) {
fis.close();
}
} catch (Exception e) {
e.printStackTrace();
}
} else {
System.out.println("文件不存在!");
}
return list;
}
public static void main(String[] args) {
List<Map<String,String>> list = ReadExcelUtils.readExcel("D:\\apache-tomcat-8.0.53\\webapps\\uploadfile\\0123100115a9fb.xls");
for (int i = 0; i < list.size(); i++) {
Map<String, String> map = list.get(i);
String hardwareName = map.get("hardwareName");
String imei = map.get("imei");
String imsi = map.get("imsi");
String hardwareType = map.get("hardwareType");
String hydrantName = map.get("hydrantName");
String hydrantNumber = map.get("hydrantNumber");
System.out.println(hardwareName+" "+imei+" "+imsi+" "+hardwareType+" "+hydrantName+" "+hydrantNumber);
}
}
}

保存到数据库
@RequestMapping("/uploadfile.do")
@ResponseBody
public Map<String,String> uploadfile(@RequestParam("file") MultipartFile file,HttpServletRequest request)
throws IllegalStateException, IOException{
String path = CommonFunction.uploadfileCommon(file, request);
System.out.println("path==="+path);
hardwareQRCodeService.saveExcel(path);
Map<String,String> map=new HashMap<String,String>();
map.put("code", "0");
map.put("msg","上传成功");
return map;
}
public void saveExcel(String path) {
HardwareQRCodeEntity hd=new HardwareQRCodeEntity();
List<Map<String,String>> list = ReadExcelUtils.readExcel(path);
for (int i = 0; i < list.size(); i++) {
Map<String, String> mapdata = list.get(i);
String hardwareName = mapdata.get("hardwareName");
String imei = mapdata.get("imei");
String imsi = mapdata.get("imsi");
String hardwareType = mapdata.get("hardwareType");
String hydrantName = mapdata.get("hydrantName");
String hydrantNumber = mapdata.get("hydrantNumber");
System.out.println(hardwareName+" "+imei+" "+imsi+" "+hardwareType+" "+hydrantName+" "+hydrantNumber);
hd.setHardwareName(hardwareName);
hd.setOnenetImei(imei);
hd.setOnenetImsi(imsi);
hd.setHardwareType(hardwareType);
hd.setHardwareName(hardwareName);
hd.setHydrantNumber(hydrantNumber);
hd.setCreateDate(new Date());
hardwareQRCodeMapper.insertHardwareQRCode(hd);
}