import cn.hutool.core.io.resource.ResourceUtil;
import cn.hutool.core.text.csv.CsvReader;
import cn.hutool.core.text.csv.CsvUtil;
import cn.hutool.core.util.CharsetUtil;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.zzupload.po.ZZUploadPO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.List;
@RestController
@RequestMapping("/zzupload")
@Slf4j
public class ZZUploadController {
/**
* @param file
* @return
*/
@RequestMapping(value = "/import", method = RequestMethod.POST)
public AjaxResult importData1(MultipartFile file) {
CsvReader csvReader = CsvUtil.getReader();
File f = this.multiToFile(file); //MultipartFile转file
//直接使用utf8编码:ResourceUtil.getUtf8Reader(f.getPath())
//使用GBK编码
List<ZZUploadPO> rows = csvReader.read(ResourceUtil.getReader(f.getPath(), CharsetUtil.CHARSET_GBK), ZZUploadPO.class);
return AjaxResult.success(rows);
}
/**
* MultipartFile转file
* @param multipartFile
* @return
*/
private File multiToFile(MultipartFile multipartFile) {
//选择用缓冲区来实现这个转换即使用java 创建的临时文件 使用 MultipartFile.transferto()方法 。
File file = null;
try {
String originalFilename = multipartFile.getOriginalFilename();
String[] filename = originalFilename.split("\\.");
file=File.createTempFile(filename[0], filename[1]);
multipartFile.transferTo(file);
file.deleteOnExit();
} catch (IOException e) {
e.printStackTrace();
log.error(e.getMessage());
}
return file;
}
}
hutools 读取CSV转换为bean
最新推荐文章于 2024-02-23 12:03:06 发布