Excel导入数据库-01.构思
系列文件目录
源代码:gitee
01.构思
文章目录
目录
系列文件目录
文章目录
前沿
核心内容规划
基础架构设计
字段映射逻辑
数据翻译机制
文档备份机制
异常处理方案
适用场景
前沿
Excel数据导入数据库是常见需求,但传统固定模板难以满足灵活多变的业务场景。本专栏提供一套自由定义导入的解决方案,从零构建完整流程,涵盖规则设定、字段映射、数据校验、数据翻译、导入后处理等功能模块,实现高度可配置化操作。
核心内容规划
基础架构设计
通过配置文件用户自定义导入模板。
打开config\ImpConfig.xlsx中sheet:Table
详细说明:
字段 | 值 | 说明 |
序号 | 1 | |
ModelName | SN_C_CFM | 模块 |
Desc | C类料交期回复 | 说明 |
FilePath | docs\imp\SN | 档路径 |
FileName | SN-Ass大料况*.xlsx | 上传档,SN-Ass大料况*.xlsx表示SN-Ass大料况开头.xlsx档 |
SheetName | Sheet1(2) | 读取sheet名,如果不设定或者找不到读取第一个sheet |
TableName | EPI_PO_ASS_CONFIRM | 写入数据库表名 |
Rows | 有效数据从第几行开始,尚未开发 | |
Cols | 有效数据从第几列开始,尚未开发 | |
ControlTable | CONTROL_TABLE | 控制表定义,若不定义就不会写控制表 |
AfterImporting | 运行前运行程序,尚未开发 | |
BeforeImporting | 运行后运行程序,尚未开发 | |
BakPath | docs\imp\bak\SN | 档运行后备份路径 |
字段映射逻辑
通过可视化配置实现Excel列与数据库字段的灵活匹配。
打开config\ImpConfig.xlsx中sheet:Field
详细说明
字段名 | 类型 | 必填 | 描述 |
ModelName | string | 是 | 关联 Table 表中的 ModelName |
ExcelField | string | 是 | Excel 中的列名 |
TableField | string | 是 | 对应数据库表的字段名 |
DefaultValue | string | 否 | 默认值。支持以下特殊值:• `auto-generate` 自动生成批次 ID• `auto-datetime` 使用当前时间• `auto-line-number` 自动行号• `auto-generate-row` 每行生成唯一 ID |
Desc | string | 否 | 描述说明 |
Remark | string | 否 | 备注说明 |
CONTROL_TABLE定义
CONTROL_TABLE:作用同步资料控制所用,可以自定义具体表名字与栏位名字
序号 | ModelName | ExcelField | TableField | DefaultValue | Desc | remark |
30 | CONTROL_TABLE_WRITE | BATCH_ID | default-batch-id | 默认批次号码 | ||
31 | CONTROL_TABLE_WRITE | PROCESS_CODE | 2000 | 项目代码 | ||
32 | CONTROL_TABLE_WRITE | SERVER_CODE | SERCOMM | 服务代码 | ||
33 | CONTROL_TABLE_WRITE | DATA_COUNT | default-data-count | 笔数 | ||
34 | CONTROL_TABLE_WRITE | STATUS_CODE | 100 | 状态代码 | ||
35 | CONTROL_TABLE_WRITE | ERROR_MESSAGE | default-error-message | 错误代码 | ||
36 | CONTROL_TABLE_WRITE | B2B_CREATION_DATE_TIME | auto-datetime | 创建日期 | ||
37 | CONTROL_TABLE_WRITE | B2B_LAST_UPDATE_DATE_TIME | auto-datetime | 修改日期 | ||
38 | CONTROL_TABLE_READY | BATCH_ID | default-batch-id | 默认批次号码 | ||
39 | CONTROL_TABLE_READY | PROCESS_CODE | 2000 | 项目代码 | ||
40 | CONTROL_TABLE_READY | SERVER_CODE | SERCOMM | 服务代码 | ||
41 | CONTROL_TABLE_READY | DATA_COUNT | default-data-count | 笔数 | ||
42 | CONTROL_TABLE_READY | RETRY_COUNT | 0 | |||
42 | CONTROL_TABLE_READY | STATUS_CODE | 120 | 状态代码 | ||
43 | CONTROL_TABLE_READY | ERROR_MESSAGE | default-error-message | 错误代码 | ||
44 | CONTROL_TABLE_READY | B2B_CREATION_DATE_TIME | auto-datetime | 创建日期 | ||
45 | CONTROL_TABLE_READY | B2B_LAST_UPDATE_DATE_TIME | auto-datetime | 修改日期 | ||
46 | CONTROL_TABLE_FAILL | BATCH_ID | default-batch-id | 默认批次号码 | ||
47 | CONTROL_TABLE_FAILL | PROCESS_CODE | 2000 | 项目代码 | ||
48 | CONTROL_TABLE_FAILL | SERVER_CODE | SERCOMM | 服务代码 | ||
49 | CONTROL_TABLE_FAILL | DATA_COUNT | default-data-count | 笔数 | ||
50 | CONTROL_TABLE_FAILL | STATUS_CODE | 120 | 状态代码 | ||
51 | CONTROL_TABLE_FAILL | ERROR_MESSAGE | default-error-message | 错误代码 | ||
52 | CONTROL_TABLE_FAILL | B2B_CREATION_DATE_TIME | auto-datetime | 创建日期 | ||
53 | CONTROL_TABLE_FAILL | B2B_LAST_UPDATE_DATE_TIME | auto-datetime | 修改日期 |
ModelName:只加Table中ControlTable对应WRITE【写入】,READY【准备】,FAILL【失败】
TableField:根据实际栏位进行,可自定义。
目前只写了CONTROL_TABLE_READY。
数据翻译机制
内置中繁翻译保证写入资料库不出现乱码,具体在config\.env中配置。
文档备份机制
自定义是否备份、备份路径,备份文件保留天数;
异常处理方案
提供错误定位与批量修正功能,降低人工干预成本。
适用场景
适合需要频繁调整导入规则或处理多源异构数据的开发人员及数据分析师。通过本方案可减少重复编码,提升数据接入效率。