当前位置:网站首页>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) {
}
}
边栏推荐
- bazel是否有学习的必要
- 木板ISO 5660-1 热量释放速率摸底测试
- 大二下个人发展小结
- Binary search
- Interpreting the daily application functions of cooperative robots
- Learning notes of SAS programming and data mining business case 19
- LeetCode: Distinct Subsequences [115]
- Using webassembly to operate excel on the browser side
- [case] Application of element display and hiding -- element mask
- int GetMonth( ) const throw( );后面的throw( )什么意思?
猜你喜欢
The development of research tourism practical education helps the development of cultural tourism industry
Phpstudy Xiaopi's MySQL Click to start and quickly flash back. It has been solved
基于AVFoundation实现视频录制的两种方式
Display DIN 4102-1 Class B1 fire test requirements
[case] Application of positioning - Taobao rotation map
Five layer network protocol
Analysis of steam education mode under the integration of five Education
When steam education enters personalized information technology courses
使用WebAssembly在浏览器端操作Excel
Arcgis\qgis no plug-in loading (no offset) mapbox HD image map
随机推荐
水泥胶黏剂BS 476-4 不燃性测试
POJ 3414 pots (bfs+ clues)
Monorepo management methodology and dependency security
研学旅游实践教育的开展助力文旅产业发展
基於flask寫一個接口
haas506 2.0开发教程 - 阿里云ota - pac 固件升级(仅支持2.2以上版本)
Arcgis\qgis no plug-in loading (no offset) mapbox HD image map
Écrire une interface basée sur flask
Dictionary tree simple introductory question (actually blue question?)
Is it necessary for bazel to learn
Aitm 2-0003 horizontal combustion test
研學旅遊實踐教育的開展助力文旅產業發展
Clion-MinGW编译后的exe文件添加ico图标
《SAS编程和数据挖掘商业案例》学习笔记# 19
How to send samples when applying for BS 476-7 display? Is it the same as the display??
Traps in the explode function in PHP
Introduction to TS, constructor and its this, inheritance, abstract class and interface
Utils/index TS tool function
leetcode:1139. The largest square bounded by 1
Which is the best online collaboration product? Microsoft loop, notion, flowus