Springboot +Poi 导入Excel表格
2021-03-28 09:28
标签:参数 区分 生成 stack string类 file length 意思 无效 导入表格的主要思路就是:首先从前端页面上传文件,这里先区分一下Multipartfile和File,前者代表的是HTML中form data方式上传的文件,后者是文件系统的抽象,前者信息较少,只有二进制数据+文件名称,所以我们一般先上传的Multipartfile文件要转换成File文件我们才可以读取文件的内容。下面一步一步的讲解 Tips: 1、先生成临时文件,同时记得使用transferTo()方法把MultipartFile文件类型转成File类型: 2、生成临时文件之后我们就可以取解析这个临时文件的内容了: 3、第2点的红色代码主要是对每一行的单元格数据进行操作,就是我先把这一行的所有单元格内容的类型全部转换成String类型,如果最后要存进数据库的类型不是字符串类型的话,那我们就可以在具体赋值之前再转成我们想要的类型就可以了,下面是把单元格转成String的方法: 4、在第2点中解析完返回的数据就是我们最终要保存到数据库里面的数据了,当我们解析完这个临时文件的时候我们就可以把之前生成的临时文件给删除了,具体的代码如下: 做完上面一系列的操作,数据解析完了,接下来就是批量保存的问题了,之前的博客中也有说过这个,不记得可以回去看看。 其实上面的还是不算完善的,比如如果导入的数据量非常大的时候,我们就可以先做一个判断,就是每次读取? 导入?的条数是有限制的,就是一次性只能存多少条,存完再寻接下来的。 Springboot +Poi 导入Excel表格 标签:参数 区分 生成 stack string类 file length 意思 无效 原文地址:https://www.cnblogs.com/yanghr/p/12878613.html File excelFile=excelService.temp(file);
//对应的temp()方法
public File temp(MultipartFile multipartFile) throws IOException {
//这里用系统当前时间加文件后缀名来做临时文件的名字,防止生成的临时文件重复
final File excelFile=File.createTempFile(new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()),Prefix(multipartFile));
//把MulitipartFile 文件转成File文件
multipartFile.transferTo(excelFile);
return excelFile;
}
//开始从临时文件中取出数据进行解析
sysVeterinaryList=excelService.readExcel(excelFile);
//readExcel()的具体实现如下:
public List
/**
* //该方法是把每行的单元格内容全部都先转成字符传类型,再一一读取
* @param row
* @return
*/
public String[] getString(Row row){
String[] strs=new String[8];
for(int j =0;j
//每次解析完就删除临时文件
excelService.deleteFile(excelFile);
//实现
/**
* 删除之前生成的临时文件,参数File... 这样子定义的意思
* 是表示参数的个数是不确顶的,因为上传文件的时候,有可能会同时上传几个文件
* @param files
*/
public void deleteFile(File... files){
for(File file:files){
if(file.exists()){
file.delete();
}
}
}
文章标题:Springboot +Poi 导入Excel表格
文章链接:http://soscw.com/index.php/essay/68992.html