当前位置:网站首页>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) {
}
}
边栏推荐
- 【日常训练】729. 我的日程安排表 I
- Web Service简单入门示例
- Cutting edge technology for cultivating robot education creativity
- CareerCup它1.8 串移包括问题
- 研學旅遊實踐教育的開展助力文旅產業發展
- vant 源码解析 event.ts 事件处理 全局函数 addEventListener详解
- Arcgis\qgis no plug-in loading (no offset) mapbox HD image map
- 基于flask写一个接口
- 2. < tag hash table, string> supplement: Sword finger offer 50 The first character DBC that appears only once
- js常用方法封装
猜你喜欢
【案例】元素的显示与隐藏的运用--元素遮罩
第05章_存储引擎
[case] Application of element display and hiding -- element mask
Write an interface based on flask
Cutting edge technology for cultivating robot education creativity
【案例】定位的运用-淘宝轮播图
Enclosed please find. Net Maui's latest learning resources
Open source SPL eliminates tens of thousands of database intermediate tables
珍爱网微服务底层框架演进从开源组件封装到自研
基于flask写一个接口
随机推荐
Learning robots have no way to start? Let me show you the current hot research directions of robots
How to send samples when applying for BS 476-7 display? Is it the same as the display??
Binary search
MySQL ifnull usage function
Promouvoir le développement de l'industrie culturelle et touristique par la recherche, l'apprentissage et l'enseignement pratique du tourisme
Utils/index TS tool function
字典树简单入门题(居然是蓝题?)
EN 438-7建筑覆盖物装饰用层压板材产品—CE认证
【案例】定位的运用-淘宝轮播图
LeetCode: Distinct Subsequences [115]
大二下个人发展小结
国外LEAD美国简称对照表
Introduction of ArcGIS grid resampling method
Open source SPL eliminates tens of thousands of database intermediate tables
股票开户选择哪家证券公司比较好哪家平台更安全
ts 之 泛型
Write an interface based on flask
Wood board ISO 5660-1 heat release rate mapping test
int GetMonth( ) const throw( );后面的throw( )什么意思?
2. < tag hash table, string> supplement: Sword finger offer 50 The first character DBC that appears only once