导入:定义xml文件
```
<?xml version="1.0" encoding="utf-8"?>
<workbook>
<!--导入并且校验
name: 数据映射名
desc: 表格列头描述
type: 表格列类型(1:String 2: NUMERIC 3:Datatime)
format: 表格列数据格式(如果是数字,格式为0.00,#.##类似数据格式形式,如果为时间,格式为yyyy-MM-dd类似形式)
nullable: 是否可为空 option[yes|no]
equsize: 输入值的定长位数限制,如equsize="10"
minsize: 输入值的最小位数限制,如minsize="10"
maxsize: 输入值的最大位数限制,如maxsize="100"
maxvalue: 输入值的最大限制,如不能超过120:maxvalue="120"
minvalue: 输入值的最小限制,如不能小于0:minvalue="0"
regex: 利用正则表达式校验数据。注意:java里都是写两个反斜杠代表一个反斜杠,这里只写一个 。如regex="[EW]?[-]?\d+[°](\s?\d+[′](\s?\d+[″]))?"
regexdesc: 正则表达式格式说明 如regexdesc="ddd°mm′ss″"
datasrc: 如果想去TD_S_PARAM表校验,只写TYPE_ID即可,例如:datasrc="TOUCH_TYPE_ID";如果想指定表校验,写法如下:TD_M_STAFF.STAFF_ID.STAFF_ID
method: 如果以上不满足校验,可在header上指定一个服务类方法,通过反射机制进行校验,例如method="exampleService.validateExample"
-->
<sheet name="baseInfoSmallImport" desc="名单制客户批量导入[中小商企]">
<header isshow="true" height="300">
<cell name="LIST_NAME" desc="客户名称" type="1" nullable="no"/>
<cell name="CUST_TYPE" desc="客户大类" type="1" nullable="no"/>
<cell name="SUB_CUST_TYPE" desc="客户小类" type="1"/>
<cell name="CALLING_TYPE_CODE" desc="行业类型" type="1" nullable="no"/>
<cell name="SUB_CALLING_TYPE_CODE" desc="行业子类" type="1" nullable="no"/>
<cell name="CUST_ADDR" desc="客户地址" type="1" nullable="no"/>
<cell name="CUST_MANAGER_ID" desc="客户经理ID" type="1" nullable="no"/>
<cell name="DEV_STAFF_ID" desc="发展人编码" type="1"/>
</header>
</sheet>
</workbook>
```
后端java代码
```
/**
* 名单制客户信息导入
*
* @return
* @throws Exception
*/
@RequestMapping(value = "/nameListImport")
@DataImport(fileName = "baseInfo", xml = "namelist/baseInfoBigImport.xml")// 不指定type,inParam.getFileList("baseInfo")元素默认为map
public String nameListImport(InParam<String, Object> inParam) {
StringBuffer importMsg = new StringBuffer();
// 基础信息
List<IData<String, Object>> baseInfoSet = inParam.getFileList("baseInfo");
if (baseInfoSet != null) {
nameListService.saveBaseInfoImport(inParam, baseInfoSet);
importMsg.append("基础信息导入成功!</br>");
}
if (importMsg.length() == 0) {
common.error("未上传任何文件,不做导入处理!");
} else {
return message.success(importMsg.toString());
}
return null;
}
```
- walk简介
- 核心模块
- walk-data
- IData
- EntityHelper
- walk-cache
- 缓存管理器
- 缓存对象
- 缓存注解
- walk-batis
- 单表操作
- 批量操作
- 列表/分页查询
- 所有方法列表
- sql热部署
- 二级缓存
- 数据库方言
- 其他使用技巧
- 实体类生成工具
- walk-mq
- 队列管理器
- 队列对象
- 订阅/发布管理器
- 订阅器
- 发布器
- walk-shiro
- 用户认证/授权
- url动态授权/回收
- 分布式会话
- 无状态会话支持
- walk-base
- 前端基础框架
- 公共页面
- 自定义标签
- 自定义函数
- 组件及工具
- 后端基础框架
- 基础结构
- 表单校验
- 数据导入
- 数据导出
- 上传下载
- 静态参数加载器
- 静态参数翻译器
- 实体类翻译器
- sql翻译器
- 自定义翻译器
- 静态参数校验器
- 分布式任务
- 增删改查代码生成器
- walk-restful
- 请求报文
- 返回报文
- 节点翻译器
- api代码生成
- walk-activiti
- 接口封装
- 模型管理
- 流程图展示
- 集成方法
- walk-console
- 在线会话管理
- 静态参数表缓存管理
- 缓存管理
- 队列管理
- 发布/订阅管理
- walk-boot
- 常用功能
- 持久层操作
- 分布式缓存
- 分布式会话
- 分布式任务
- 前端常用功能
- 后端常用功能
- 工作流封装
- 多数据源支持
- 关于读写分离
- 常用工具类
- 代码生成工具
- SpringCloud集成
- 阿里edas平台支持
- 其他
- 开发规约
- 环境要求
- 工程示例
- 工程结构
- web工程
- API工程
- 后台任务
- 常见问题
- 事务不生效
- 分布式任务不生效
- 事务锁
- 变更历史