# ExcelImport
**Repository Path**: haoidea/ExcelImport
## Basic Information
- **Project Name**: ExcelImport
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2017-10-13
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 导入XML配置说明
## 结构
1. XML 声明 :``
2. 根节点:``
3. 表节点:`
`
4. 列节点:``
5. 清单结点:``
## 表级属性:
1. Name
2. SpImportExcel
3. Filter
4. Skip
## 列级属性:
1. IsPrimaryKey
2. IsDelete
3. IsUnique
4. Required
5. DefaultValue
6. ColumnName
7. HeaderText
8. DataType
9. DataTypeMsg
10. RegExp
11. RegExpMsg
12. UpdateIgnore
## 清单表级属性:
1. Name
2. PrimaryKey
3. ReferenceColumn
### 表级属性详情:
1. Name:
- 表示该配置表操作的数据库表 如:X6_Personnel_BasicInfo
- ``
2. SpImportExcel
- 一行数据插入进数据库后执形的存储过程
- 如 usp_CreateUserCode
- ``
3. Filter
- IsUnique 属性的附加条件
- 如: 身份证号在数据库中存在时,提示身份证号已存在,并且排除掉员工状态为离职的。
- 注:身份证列上要配IsUnique="true"
- ``
4. Skip
- 跳过指定条件的行 (仅更新时可用)
- 如想跳过对数据库中指定条件的行的更新
- 如想跳过对姓名等于高聪的数据行的更新则 Skip="Name='高聪'"
### 列级属性详情:
1. IsPrimaryKey:
- 设了IsPrimaryKey的列,值存在时做update,反之做insert
- 支持多列设IsPrimaryKey.
- 如 工号列和姓名列上面都设了IsPrimaryKey,那么工号和姓名在数据库中同时存在时才做update,反之insert
2. IsDelete:
- 是否忽略改配置列 true/false
3. IsUnique
- 该列是否做存在性验证
- 如 身份证号在数据库中存在时,提示身份证号已存在
- 则 ``
4. Required
- 该列是否必填 true/false
5. DefaultValue
- Excel中列中没填值时,取默认值
- 特殊值:
- 1. NewID :表示一个Guid
2. EmptyNewId :空Guid 值全部为0
3. Max :当前表中当前列在数据库的最大值+1
4. SerialNumber : 流水号
5. CurrentUser :当前登录用户名
6. CurrentDate :当前服务器时间
7. ImportFlag :导入流水号
6. ColumnName
- 在数据库中的列名
7. HeaderText
- 在Excel中的表头名 (根据表头名取值)
8. DataType、DataTypeMsg
- 列的数据类型,数据类型验证失败时提示 DataTypeMsg
- 目前该列支持的数据类型有 datetime 、bool
9. RegExp、RegExpMsg
- 列上用的,正则表达式如 ^[A-Za-z0-9]{1,50}$ 匹配 1-50 个字母或数字
- 不匹配正则时的提示RegExpMsg
10. UpdateIgnore
- 更新时是否忽略
### 清单表级属性:
1. CodeTable为清单表节点
3. Name为关联表名
3. PrimaryKey为select出的字段
4. ReferenceColumn为where条件
5. 例:
- ``
- 列里面可添加CodeTable节点,CodeTable代表清单表
- Name为关联表名,PrimaryKey 为select 出的字段,
- ReferenceColumn为where条件
- 如上配置生成的sql为 `select VGUID from X6_Personnel_BasicInfo where UserCode='VGUID'`
- 最终插入数据库的为select 列 的值