免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
まず依存のpom.xmlを導入し、APIのEasyExcelバージョンアップデート速い、異なるバージョンは、異なるいくつかは放棄されています。
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.0.0</version>
</dependency>
Excelのパッケージ高さEasyExcel動作は、以下では、ヘッダを含む、行の内容読み取りエクセルです。
public void importSynonyms(MultipartFile file, String type) throws Exception {
ExcelListener<SynonymModel> listener = new ExcelListener<>();
try {
EasyExcelFactory.read(file.getInputStream(), SynonymModel.class, listener).sheet(0).doRead();
} catch (Exception e) {
logger.info(e.getMessage());
}
List<SynonymModel> rows = listener.getRows();
...
// 完成 Excel到映射类对象的反射,可以进行业务逻辑处理了
}
正常EasyExcelを解決し、Javaオブジェクトとして反映するために、マッピング対象クラスを定義する必要があり、そしてExcelに各行を解析AnalysisEventListenerインタフェースを実装し、方法及び補助フックイベントを提供します。次は、マッピングクラス、注意しなければならないインデックス0ベース、列番号とExcelファイルの値と一致しています。
モニタのインタフェースは、マッピングクラスオブジェクトを解決するためのラインと反射して、Excel、ラインを解析するための責任があります。
データEasyExcelをエクスポート、次のとおりです。
public void exportConceptMapping(int id, HttpServletResponse resp){
List<ConceptMappingList> data = new ArrayList<>();
// 处理 data 数据
WriteSheet sheet = new WriteSheet();
WriteTable table = new WriteTable();
List<List<String>> head = new ArrayList<>();
List<String> col = new ArrayList<>();
col.add("列名 1");
head.add(col);
List<String> col2 = new ArrayList<>();
col2.add("列名 2");
head.add(col2);
table.setHead(head);
try {
try (BufferedOutputStream ops = new BufferedOutputStream(resp.getOutputStream())) {
resp.setContentType("application/x-xls");
resp.addHeader("Content-Disposition", "attachment;filename=test.xlsx");
resp.setCharacterEncoding("UTF-8");
ExcelWriter writer = EasyExcelFactory.write(ops).build();
writer.write(data, sheet, table);
writer.finish();
}
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("导出文件出错:" + e.getMessage());
}
}