当前位置:   article > 正文

easyExcel excel导入导出_easyexcel需要哪些包

easyexcel需要哪些包

使用EasyExcel 导入导出Excel

能够实现「导入/导出 Excel」的第三方常用类库有 Apache poi、Java Excel(JXL)和阿里巴巴开源的 Easyexcel 等等。
github地址:https://github.com/alibaba/easyexcel

1.EasyExcel所需要的jar包

easyexcel本身就是在poi技术基础上修改的,easyexcel本身所依赖的jar包也需要导入工程中。

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>easyexcel</artifactId>
	<version>2.0.5</version>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5

2.导入

2.1 定义一个实体类(UploadDataPO),对应导入excel中的每一条记录

public class UploadDataPO {
	// value: 导入列名称,index:导入列位置。
    // 自增主键
	@ExcelProperty(index = 0 , value = "id")
    private int    id;
    // 字段类型
	@ExcelProperty(index = 1 , value = "字段类型")
    private String type;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2.2 定义Control层接口

调用MyEasyExcel的read方法。

    @RequestMapping("/import")
    public String importExcel(MultipartHttpServletRequest request) throws IOException {
    	// 使用了element ui的导入文件控件。前台传入的名称是:fileToUpload。
    	MultipartFile file = request.getFile("fileToUpload");
    	// 参数1:文件对象的输入流,参数2:读入excel一行所对应的实体类,参数3:Service层类,参数4:excel的sheet下标,参数4:sheet的名字
        MyEasyExcel.read(file.getInputStream(), UploadDataPO.class, new UploadDAO<UploadDataPO>(), 0, null);
        return "sucess";
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2.3 定义DAO层业务

定义UploadDAO类继承 MyEasyExcelDAO类
在saveData方法中对导入的数据进行数据库的插入操作

@Service
public class UploadDAO<T> implements MyEasyExcelDAO<T> {

	@Override
	public void saveData(List<T> list) {
        // 如果是mybatis,尽量别直接调用多次insert,自己写一个mapper里面新增一个方法batchInsert,所有数据一次性插入
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

导出

3.1 定义导出实体类(DownloadDataPO),对应导出excel中的每一条记录。

注解:@ContentRowHeight(10),定义行高。
注解:@HeadRowHeight(20),定义标题行高。
注解:@ColumnWidth(25),定义列宽。
注解:@ExcelProperty(index = 0 , value = “id”),定义导出列名和列的位置。

@ContentRowHeight(10)
@HeadRowHeight(20)
@ColumnWidth(25)
public class DownloadDataPO {
	// 自增主键
	@ExcelProperty(index = 0 , value = "id")
	private int id;
	// 字段类型
	@ColumnWidth(50)
	@ExcelProperty("字段类型")
	private String type;
	// 字段编号
	@ExcelProperty("字段编号")
	private String itemCode;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

3.2 定义DAO层接口

调用MyEasyExcel的write方法。

    @RequestMapping("/downloadtest")
    public void download(HttpServletRequest request, HttpServletResponse response) throws IOException {
    	// 参数1:response对象     2:读入excel一行所对应的实体类,参数3:Service层类,参数4:excel的sheet下标。
        MyEasyExcel.write(response, DownloadDataPO.class, new DownloadDAO<DownloadDataPO>(), 0, null, "测试");
    }
  • 1
  • 2
  • 3
  • 4
  • 5

3.3 定义DAO层业务

定义DownloadService类继承 MyEasyExcelDAO类
在getData中获取需要导出的数据,easyExcel会将这些数据放入导出的excel表中。

@Service
public class DownloadDAO<T> implements MyEasyExcelDAO<T> {

	@Override
	public List<T> getData() {
		// 这里定义需要导出的数据list
		return null;
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/编程探险家2/article/detail/61072
推荐阅读
相关标签
  

闽ICP备14008679号