使用EasyPOI实现对excal表格操作

easyPOI实现对excal表格的导入导出

一:使用EasyPOI实现对数据库表格的导出

在domain实体类中的属性添加注解,需要生成表格数据的属性都要加

1
@Excel(name="表头",width = 表格宽度)

在逻辑代码中将实体类数据封装为List集合
定义表信息
设置表信息
设置导出表根据哪个实体类生成(刚才添加注解的实体类)
设置表信息
设置文件名
通过视图解析器将表格返回

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public String download(ModelMap map,EmployeeQuery query, HttpServletRequest request) {
//拿到所有数据
List<Employee> list = employeeService.findByQuery(query);

//设置一些属性 员工管理: 标题 明细: sheet 名称
ExportParams params = new ExportParams("员工管理", "明细", ExcelType.XSSF);
//params.setFreezeCol(3); // 固定导出列
map.put(NormalExcelConstants.DATA_LIST, list); // 数据集合
map.put(NormalExcelConstants.CLASS, Employee.class);//导出实体
map.put(NormalExcelConstants.PARAMS, params);//参数
map.put(NormalExcelConstants.FILE_NAME, "employee");//文件名称
//返回的名称 :easypoiExcelView -> 并没有找我的bean,而且当做一个路径去进行访问
// 现在默认去找的视图解析器,而没有找我的那一个bean
return NormalExcelConstants.EASYPOI_EXCEL_VIEW;//View名称
}

在spring-mvc中配置视图解析器

1
2
3
4
5
<context:component-scan base-package="cn.afterturn.easypoi.view" />
<!-- 扫描easypoi的一些view:视图 -->
<bean id="beanNameViewResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver" >
<property name="order" value="0"></property>
</bean>

二:使用easyPOI实现对excal表格的导入

准备导入的参数
setTitleRows为设置标题所占行数
setHeadRows为设置表头所占行数
创建List集合用于接收表格数据,泛型为实体类,将表格转换为实体类的集合
传入的参数为根据上传的表格获取输入流,实体类,读取表格参数

1
2
3
4
5
6
7
8
9
10
11
public void employeeXlsx(MultipartFile empFile) throws Exception {
//准备导入的参数
ImportParams params = new ImportParams();
params.setTitleRows(1);
params.setHeadRows(1);
List<Employee> list = ExcelImportUtil.importExcel(
empFile.getInputStream(),
Employee.class,
params);

}

Comments:

MarkDown is Support
ReferenceError: AV is not defined
Valine:1.1.7
反馈:https://github.com/xCss/Valine/issues
    Powered By Valine