package com.walker.di.univocity; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcelFactory; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.builder.ExcelWriterBuilder; import com.alibaba.excel.write.metadata.WriteSheet; import com.walker.di.DataImportException; import com.walker.di.excel.ExcelTemplateGenerator; import com.walker.infrastructure.utils.StringUtils; import org.junit.Before; import org.junit.Test; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class TestExcel { private InputStream inputStream = null; @Before public void init() throws Exception{ // inputStream = new BufferedInputStream(new FileInputStream(new File("d:/tmp/test_user_30.xlsx"))); inputStream = new BufferedInputStream(new FileInputStream(new File("d:/tmp/user_import.xlsx"))); } @Test public void testTemplateGenerator() throws Exception{ ExcelTemplateGenerator templateGenerator = new ExcelTemplateGenerator() { @Override protected String acquireWriteFilePath(Object option) { return "d:/tmp/template_demo.xlsx"; } @Override protected List> acquireWriteContent(Object option) { List> resultList = new ArrayList<>(); Map map = new HashMap<>(); map.put("id", "编号"); resultList.add(map); Map map2 = new HashMap<>(); map2.put("name", "姓名"); resultList.add(map2); return resultList; } }; templateGenerator.generate(new Object()); } // @Test public void testLoadExcelImportor(){ DefaultExcelDataImportor dataImportor = new DefaultExcelDataImportor(this.inputStream); dataImportor.setBatchEnabled(); dataImportor.setHeadRowNumber(2); // dataImportor.setIgnoreRows(1); dataImportor.setBatchSleepMills(1000); dataImportor.setId("789009"); dataImportor.setSaveFileFolder("d:/tmp/"); dataImportor.setSaveSizeOnce(5); try { dataImportor.load(); System.out.println("批量导入完成"); } catch (DataImportException e) { System.out.println("导入异常:" + e.getMessage()); System.out.println(dataImportor.getBatchError()); e.printStackTrace(); } } // @Test public void loadExcel(){ ArrayDataListener arrayDataListener = new ArrayDataListener(); // ObjectDataListener arrayDataListener = new ObjectDataListener(); EasyExcel.read(this.inputStream, arrayDataListener).sheet(0).headRowNumber(2).doRead(); System.out.println("........end"); } // @Test public void writeExcel() throws Exception{ File file = new File("d:/tmp/test_write.xlsx"); OutputStream out = new FileOutputStream(file); ExcelWriterBuilder writer = EasyExcelFactory.write(out); writer.head(this.getHeaders()); // WriteSheet writeSheet = writer.sheet(0).build(); // writer.sheet(0); writer.sheet("test_write"); ExcelWriter excelWriter = writer.build(); WriteSheet writeSheet = new WriteSheet(); // writer.sheet(0, "test_write"); writeSheet.setSheetName("demo"); excelWriter.write(this.getData(), writeSheet); excelWriter.finish(); out.close(); } private List> getData(){ List> headers = new ArrayList<>(); headers.add(StringUtils.asList(new String[]{"123","shikeying","1233889746596"})); headers.add(StringUtils.asList(new String[]{"789","孙悟空","13838277463"})); return headers; } private List> getHeaders(){ List> headers = new ArrayList<>(); headers.add(StringUtils.asList(new String[]{"编号","id"})); headers.add(StringUtils.asList(new String[]{"名字","name"})); headers.add(StringUtils.asList(new String[]{"身份证","card"})); // headers.add(StringUtils.asList(new String[]{"编号","名字","身份证"})); // headers.add(StringUtils.asList(new String[]{"id","name","card"})); return headers; } }