先写一个工具类把csv文件解析为Bean(因为我这个表里的数据带有逗号,所以我就用的这种办法解析,不然也可以用逗号去分割)
package me.zhengjie.utils;
import com.opencsv.CSVReader;
import com.opencsv.CSVReaderBuilder;
import org.springframework.web.multipart.MultipartFile;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class CsvUtils {
// 析csv文件并转成bean(方法一)
public static List excelToShopIdList(MultipartFile file) {
List list = new ArrayList();
int i = 0;
try {
CSVReader csvReader = new CSVReaderBuilder(
new BufferedReader(
new InputStreamReader(file.getInputStream(), "GBK"))).build();
Iterator iterator = csvReader.iterator();
while (iterator.hasNext()) {
String[] next = iterator.next();
list.add(next);
i++;
}
return list;
} catch (Exception e) {
System.out.println("CSV文件读取异常");
return list;
}
}
}
然后去写Service
package me.zhengjie.service;
import me.zhengjie.response.ResponseBean;
import org.springframework.web.multipart.MultipartFile;
public interface TfClientCaptService {
ResponseBean upload(MultipartFile file) throws Exception;
}
然后去根据自己的需求去写实现类
package me.zhengjie.service.impl;
import me.zhengjie.domain.TfClientCapt;
import me.zhengjie.repository.BaseRepository;
import me.zhengjie.response.ResponseBean;
import me.zhengjie.service.TfClientCaptService;
import me.zhengjie.service.TfFileService;
import me.zhengjie.utils.CsvUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import javax.transaction.Transactional;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.*;
@Service
public class TfClientCaptServiceImpl implements TfClientCaptService {
@Autowired
BaseRepository baseRepository;
@Autowired
TfClientCaptService tfClientCaptService;
@Override
@Transactional
public ResponseBean upload(@RequestParam("files") MultipartFile file, String username, Integer userid,String orderNumber) throws Exception {
String name = file.getOriginalFilename();
if (name.length() < 4 || !name.substring(name.length() - 4).equals(".csv")) {
throw new Exception("文件格式错误");
}
// 获取Excel中的数据
List list = CsvUtils.excelToShopIdList(file);
List
Controller比较简单我就不贴出来了。



