package org.yeshi.utils; import java.io.InputStreamReader; import java.util.List; import org.springframework.web.multipart.MultipartFile; import com.opencsv.bean.CsvToBean; import com.opencsv.bean.CsvToBeanBuilder; import com.opencsv.bean.HeaderColumnNameMappingStrategy; public class CsvUtil { /** * 解析csv文件并转成bean * * @param file csv文件 * @param clazz 类 * @param 泛型 * @return 泛型bean集合 */ public static List getCsvData(MultipartFile file, Class clazz) { InputStreamReader in = null; try { in = new InputStreamReader(file.getInputStream(), "gbk"); } catch (Exception e) { e.printStackTrace(); } HeaderColumnNameMappingStrategy strategy = new HeaderColumnNameMappingStrategy<>(); strategy.setType(clazz); CsvToBean csvToBean = new CsvToBeanBuilder(in).withSeparator(',').withQuoteChar('\'') .withMappingStrategy(strategy).build(); return csvToBean.parse(); } }