区域批量导入功能

分析: 文件上传、数据文件格式 Excel(解析操作)

1.1. 如何上传批量数据表格

需要注意事项:

1、 必须同步提交 form 表单

2、 Form 表单编码方式 multipart/form-data

3、 提交方式必须为 post

4、 上传文件对应 input type=”file” 元素要提供 name 属性

1.2. 一键上传原理

区域批量导入功能

1.3. 使用 jQuery ocupload 实现一键上传

ocupload 指 one-click upload

官网: http://code.google.com/p/ocupload/

1 导入 jquery.ocupload-1.1.2.js 到项目中

区域批量导入功能

2、 在页面引入 ocupload.js

区域批量导入功能

区域批量导入功能

区域批量导入功能

1.4. 限制只能上传指定格式的文件

思路:在选择文件后,关闭自动提交,判定文件格式,再手动提交

区域批量导入功能

1.5. 编写服务器代码实现区域批量导入

1、 使用 struts2 文件上传机制,接收上传文件

struts2-default.xml 配置

区域批量导入功能

拦截器已经被配置 defaultStack 中

编写 AreaAction 接收上传文件

在 Action 定义三个成员变量

private File [页面元素 name]

private String [页面元素 name]ContentType;

private String [页面元素 name]FileName;

2、 实现 Excel 文件解析

区域批量导入功能

官网: http://poi.apache.org/

区域批量导入功能

目标要解析 Excel 使用 SS 组件

区域批量导入功能

HSSF 解析 Excel 97-2007 格式 (.xls)

XSSF 解析 Excel 2007 格式 (.xlsx )

基于 maven 坐标导入 POI 支持

poi… jar 解析 HSSF

poi ooxml .. jar 解析 XSSF (以来 POI 包 )

区域批量导入功能

解析 Excel 逻辑

工作薄 --- sheet --- row --- cell

区域批量导入功能

区域批量导入功能

区域批量导入功能

编写业务层

区域批量导入功能

编写 DAO

区域批量导入功能

1.6. 使用 Pinyin4j 生成区域简码和城市编码

什么是城市编码? 什么是简码 ?

北京市 ---- 城市编码 beijing

北京市海淀区 --- 简码 BJHD

区域批量导入功能

1、 使用 maven 坐标导入 pinyin4j

区域批量导入功能

区域批量导入功能

2、 导入资料 Pinyin4jUtils 工具类

区域批量导入功能