controller:
@RequestMapping(value = "/ImportExcel", method = RequestMethod.POST)
public JSONObject templateImportExcel(@RequestParam(value = "file", required = true) MultipartFile file) {
return baseService.templateImportExcel(file);
}
```java
在这里插入代码片
service:
```ja@Service
public class BaseService {
//
// @Autowired
// JdbcTemplate jdbcTemplate;
public JSONObject templateImportExcel(MultipartFile file) {
String originalFilename = file.getOriginalFilename();
// 默认从第一行开始读取
InputStream is = null;
Map<String, List<Map<String, Object>>> excel = null;
try {
is = file.getInputStream();
excel = ExcelUtil.parseExcelSheets(is, originalFilename);
// sheet1
List<Map<String, Object>> forList = excel.get("key0");
// sheet2
List<Map<String, Object>> forList2 = excel.get("key1");
System.out.println("map"+excel);
} catch (Exception e) {
e.printStackTrace();
}
excel解析工具类:
package com.example.demo.utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.lang.reflect.Method;
import java.net.URLEncoder;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
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.util.IOUtils;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import com.alibaba.fastjson.JSON;
@Component
public class ExcelUtil {
private static final Logger log = LoggerFactory.getLogger(ExcelUtil.class);
private final static String excel2003L = ".xls"; // 2003- 版本的excel
private final static String excel2007U = ".xlsx"; // 2007+ 版本的excel
/**
* Float类型数据小数位
*/
private String floatDecimal = ".00";
/**
* Double类型数据小数位
*/
private String doubleDecimal = ".00";
private DecimalFormat floatDecimalFormat = new DecimalFormat(floatDecimal);
/**
* The Double decimal format.
*/
private DecimalFormat doubleDecimalFormat = new DecimalFormat(doubleDecimal);
/**
* 日期格式化
*/
private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
private XSSFWorkbook workbook;
/**
* 将流中的Excel数据转成List<Map>
*
* @param in 输入流
* @param fileName 文件名(判断Excel版本)
* @param mapping 字段名称映射
* @return
* @throws Exception
*/
public static List<Map<String, Object>> parseExcel(InputStream in, String fileName) throws Exception {
// 根据文件名来创建Excel工作薄
Workbook work = getWorkbook(in, fileName);
if (null == work) {
throw new Exception("创建Excel工作薄为空!");
}
Sheet sheet = null;
Row row = null;
Cell cell = null;
// 返回数据
List<Map<String, Object>> ls = new ArrayList<Map<String, Object>>();
// 遍历Excel中所有的sheet work.getNumberOfSheets();
for (int i = 0; i < 1; i++) {
sheet = work.getSheetAt(i);
if (sheet == null)
continue;
// 取第一行标题
row = sheet.getRow(