当前位置:网站首页>Opérations de lecture et d'écriture pour easyexcel
Opérations de lecture et d'écriture pour easyexcel
2022-07-05 21:05:00 【Letg】
Un.、Écrire l'opération
1.1 Classe d'entité
Lire l'action ajouter @ExcelPropertyNotes,EtvalueLa valeur est:excelNom de l'en - tête pour
@Data
public class User {
@ExcelProperty(value = "Numéro d'utilisateur",index = 0)
private int id;
@ExcelProperty(value = "Nom de l'utilisateur",index = 1)
private String name;
}
1.2 Test write Operation
public class TestWrite {
public static void main(String[] args) {
String fileName = "C:\\data\\hzxy.xlsx";
EasyExcel.write(fileName,User.class)
.sheet("Écrire l'opération")
.doWrite(data());
}
}
private static List<User> data(){
ArrayList<User> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
User user = new User();
user.setId(i);
user.setName("Zhang San"+i);
list.add(user);
}
return list;
}
}

2.、Écrire l'opération( L'écriture nécessite l'héritage d'un auditeur , Lire ligne par ligne )
2.1 Moniteur
invokeLa méthode se dérouleraexcelLire ligne par ligne, Lire seulement à partir de la deuxième ligne ,En - tête du premier comportement
public class ExcelListener extends AnalysisEventListener<User> {
//Lire ligne par ligneexcelLe contenu de, Encapsuler chaque ligne de contenu
// Première ligne non lue , Parce que l'en - tête du premier comportement
@Override
public void invoke(User user, AnalysisContext analysisContext) {
System.out.println(user);
}
// L'en - tête est lu à partir de cette méthode
@Override
public void invokeHead(Map<Integer, CellData> headMap, AnalysisContext context) {
System.out.println("En - tête:"+headMap);
super.invokeHead(headMap, context);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
}
2.2 Code d'essai
public class TestWrite {
public static void main(String[] args) {
String fileName = "C:\\data\\hzxy.xlsx";
// EasyExcel.write(fileName,User.class)
// .sheet("Écrire l'opération")
// .doWrite(data());
EasyExcel.read(fileName,User.class,new ExcelListener())
.sheet("Lire l'opération")
.doRead();
}

Trois、Réalisation
3.1 Exporter
public void exportData(HttpServletResponse response) {
try {
//Définir les informations de téléchargement
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
String fileName = URLEncoder.encode("Classification des cours","UTF-8");
response.setHeader("Content-disposition","attachment;filename="+fileName+".xlsx");
// Rechercher toutes les données du cours
List<Subject> subjectList = baseMapper.selectList(null);
List<SubjectEeVo> subjectEeVos = new ArrayList<>();
for (Subject subject : subjectList) {
SubjectEeVo subjectEeVo = new SubjectEeVo();
BeanUtils.copyProperties(subject,subjectEeVo);
subjectEeVos.add(subjectEeVo);
}
EasyExcel.write(response.getOutputStream(), SubjectEeVo.class)
.sheet("Classification des cours")
.doWrite(subjectEeVos);
} catch (Exception e) {
e.printStackTrace();
}
}
3.2 Importer
@Override
public void importData(MultipartFile file) {
try {
EasyExcel.read(file.getInputStream(),SubjectEeVo.class,subjectListener)
.sheet()
.doRead();
} catch (IOException e) {
throw new GgktException(20001,"L'importation a échoué");
}
}
@Component
public class SubjectListener extends AnalysisEventListener<SubjectEeVo> {
@Autowired
private SubjectMapper subjectMapper;
@Override
public void invoke(SubjectEeVo subjectEeVo, AnalysisContext analysisContext) {
Subject subject = new Subject();
BeanUtils.copyProperties(subjectEeVo,subject);
subjectMapper.insert(subject);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
}
边栏推荐
- EN 438-7建筑覆盖物装饰用层压板材产品—CE认证
- @Validated basic parameter verification, grouping parameter verification and nested parameter verification
- poj 3414 Pots (bfs+线索)
- vant 源码解析 之深层 合并对象 深拷贝
- Establishment of terminal security capability verification environment and penetration test records
- Binary search
- Analysis of steam education mode under the integration of five Education
- Sequence alignment
- AITM2-0002 12s或60s垂直燃烧试验
- ArcGIS栅格重采样方法介绍
猜你喜欢

基于AVFoundation实现视频录制的两种方式

从架构上详解技术(SLB,Redis,Mysql,Kafka,Clickhouse)的各类热点问题
![R language [data management]](/img/41/b89bb8794c06280e58988e1c1a5e02.png)
R language [data management]

Influence of oscilloscope probe on signal source impedance

10000+ 代码库、3000+ 研发人员大型保险集团的研发效能提升实践

ArcGIS栅格重采样方法介绍

How to send samples when applying for BS 476-7 display? Is it the same as the display??

EN 438-7建筑覆盖物装饰用层压板材产品—CE认证

2. < tag hash table, string> supplement: Sword finger offer 50 The first character DBC that appears only once
![[case] Application of positioning - Taobao rotation map](/img/2d/c834ce95a2c8e53a20e67fa2e99439.png)
[case] Application of positioning - Taobao rotation map
随机推荐
字典树简单入门题(居然是蓝题?)
Hdu2377bus pass (build more complex diagram +spfa)
leetcode:1755. 最接近目标值的子序列和
SYSTEMd resolved enable debug log
Golang(1)|从环境准备到快速上手
XML modeling
CareerCup它1.8 串移包括问题
Implementation of redis unique ID generator
leetcode:1139. 最大的以 1 为边界的正方形
The reason why the ncnn converted model on raspberry pie 4B always crashes when called
selenium 获取dom内验证码图片
水泥胶黏剂BS 476-4 不燃性测试
LeetCode: Distinct Subsequences [115]
ArcGIS栅格重采样方法介绍
大二下个人发展小结
第05章_存储引擎
启牛2980有没有用?开户安全吗、
Enclosed please find. Net Maui's latest learning resources
中国的软件公司为什么做不出产品?00后抛弃互联网;B站开源的高性能API网关组件|码农周刊VIP会员专属邮件周报 Vol.097
木板ISO 5660-1 热量释放速率摸底测试