文件上传

1.MultipartFile工具类

package org.springframework.web.multipart;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import org.springframework.core.io.InputStreamSource;
import org.springframework.core.io.Resource;
import org.springframework.lang.Nullable;
import org.springframework.util.FileCopyUtils;

public interface MultipartFile extends InputStreamSource {
//getName() 返回参数的名称
String getName();
//获取源文件的昵称
@Nullable
String getOriginalFilename();
//getContentType() 返回文件的内容类型
@Nullable
String getContentType();
//isEmpty() 判断是否为空,或者上传的文件是否有内容
boolean isEmpty();
//getSize() 返回文件大小 以字节为单位
long getSize();
//getBytes() 将文件内容转化成一个byte[] 返回
byte[] getBytes() throws IOException;
//getInputStream() 返回InputStream读取文件的内容
InputStream getInputStream() throws IOException;

default Resource getResource() {
return new MultipartFileResource(this);
}
//transferTo(File dest) 用来把 MultipartFile 转换换成 File
void transferTo(File var1) throws IOException, IllegalStateException;

default void transferTo(Path dest) throws IOException, IllegalStateException {
FileCopyUtils.copy(this.getInputStream(), Files.newOutputStream(dest));
}
}

2.EasyExcel.read

2.1

第一步创建监听器:
继承 AnalysisEventListener , 重写invoke、invokeHeadMap、doAfterAnalysed方法

invoke:可以一行一行读取 excel 内容

invokeHeadMap:读取表头内容

doAfterAnalysed: 读取完成之后做什么事情
代码示例:

public class ExcelListen extends AnalysisEventListener<ExcelData> {   //ExcelData为读取的类名
// 一行一行读取 excel 内容
@Override
public void invoke(ExcelData excelData, AnalysisContext analysisContext) {   //ExcelData为读取的类名,后面不动
System.out.println("***"+excelData+"***");
}

// 读取表头内容
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
System.out.println("表头:" + headMap);
}
// 读取完成之后
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {

}
}

2.2

第二步创建实体类

代码示例:

@Data
@ApiModel(value = "追加工作量DTO") //这个注解的是作用在类上面的,是用来描述类的一些基本信息的 value为模型提供备用名称
public class SupplementImportDTO {

@ApiModelProperty("姓名") //添加和操作模型属性的数据
@ExcelProperty(value = "姓名")
private String nickName;

@ApiModelProperty("工号")
@ExcelProperty(value = "工号")
private String userName;


@ApiModelProperty("追加分")
@ExcelProperty(value = "追加分")
Double workload;

@ApiModelProperty("追加分类型")
@ExcelProperty(value = "追加分类型")
String workloadType;

@ApiModelProperty("追加分级别")
@ExcelProperty(value = "追加分级别")
String workloadLevel;

}
2.3
第三步使用
代码示例:

public static void main(String[] args) {

// 实现excel读操作
String filename = "E:\\write.xlsx";
EasyExcel.read(filename,ExcelData.class,new ExcelListen()) .sheet() .doRead();    //sheet(0)指定读取哪个sheet

}

 

关于文件:File.separator 的作用相当于 ' \  '

FileUtils.touch => 创建文件,如果文件存在则更新时间;如果不存在,创建一个空文件

 
 
posted @   自信且66  阅读(66)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示