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 <T> 泛型
|
* @return 泛型bean集合
|
*/
|
public static <T> List<T> getCsvData(MultipartFile file, Class<T> clazz) {
|
InputStreamReader in = null;
|
try {
|
in = new InputStreamReader(file.getInputStream(), "gbk");
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
|
HeaderColumnNameMappingStrategy<T> strategy = new HeaderColumnNameMappingStrategy<>();
|
strategy.setType(clazz);
|
|
CsvToBean<T> csvToBean = new CsvToBeanBuilder<T>(in).withSeparator(',').withQuoteChar('\'')
|
.withMappingStrategy(strategy).build();
|
return csvToBean.parse();
|
}
|
}
|