1.导入导出功能操作步骤
导入:"下载导入模板" -->保存文件到本地-->在模板中输入要导入的数据行-->"导入"-->选择录入数据的模板文件-->"确定"
导出:"导出"-->保存Excel文件到本地。
2.功能实现原理
2.1.外部组件依赖说明
(1)数据库访问相关:mysql-connector-jaca-5.0.8-bin.jar
c3p0-0.9.1.2.jar
commons-dbutils-1.4.jar
commons-io-2.6.jar
commons-logging-1.1.1.jar
(2)前端jsp页面jstl相关:jstl.jar
standard.jar
(3)导入功能相关:jquery-EasyUI(前端组件)
commons-fileupload.jar
poi-3.17.jar
poi-ooxml-3.17.jar
poi-ooxml-schemas-3.17.jar
xmlbeans-2.6.0.jar
commons-collections4-4.1.jar
commons-beanutils-1.8.0.jar
slf4j-api-1.7.5.jar
(4)导出功能相关:jquery-table2excel(前端组件)
如果是maven工程,pom相关依赖:
org.apache.poi
poi
3.17
org.apache.poi
poi-ooxml
3.17
commons-collections4
commons-collections4
4.1
commons-beanutils
commons-beanutils
1.8.3
org.slf4j
slf4j-api
1.7.5
2.2.功能实现原理说明:
(1)导入:利用jquery-EasyUI组件展示上传文件对话框,选择目标excel文件;利用commons-fileupload组件解析和处理前端传递过来
的excel文件流数据;利用poi组件解析excel文件内容,转换成数据库表对象结构,利用c3p0、dbutils组件保存到数据库表中。
(2)导出:利用table2excel组件导出表格内容到目标excel文件。
3.功能实现步骤
(1)拷贝需要引入的依赖组件包和util包下的工具类代码到工程中。
(2)在需要导入导出的目标库表对象类中,将excel文件相关的几个字段属性,增加"@ExcelCell"注解。参考(Product.java)。
注意:类中属性的数据类型只能为包装类型(如String,Double等,不包含Integer),不能为基本类型(int,double等)。
index属性值必须与excel文件中的数据记录顺序一致。
(3)根据对象类结构,创建和上传导入模板文件到服务器文件夹,参考(WEB-INF/template/product.xlsx),
修改DownloadImportTemplateServlet里对应的文件名。
(4)增加导入excel功能代码,参考(ProductService.java中importProductDataFromExcel方法)。
(5)增加导出功能代码,参考(pagination.jsp中export2Excel方法)。
下面是前端页面pageination.jsp代码
var options={
type:'post',
url:'importExcelData',
dataType:'json',
success: function (json) {
alert(json.message);
location.reload();
},
error: function() {
alert("error");
}
};
$('#uploadfile-form').ajaxSubmit(options);
$('#import-dialog').dialog('close');
}
function export2Excel() {
$("#table").table2excel({//exclude CSS class
exclude: ".noExl",
sheetName:"product",
filename:"product.xls"});
}