Skip to content

全量导入导出

全量导入导出功能支持多种资源的数据批量操作,大大提高数据管理效率。

支持的资源类型

系统支持以下 6 种资源的导入导出:

  1. 网络区域 (NetworkArea)
  2. 单位 (Unit)
  3. 部门 (Department)
  4. 网关 (Gateway)
  5. 项目 (Project)
  6. 子网 (Subnet)

导出功能

多 Sheet Excel 导出

导出功能生成包含多个 Sheet 的 Excel 文件:

导出文件.xlsx
├── Sheet1: 网络区域
├── Sheet2: 单位
├── Sheet3: 部门
├── Sheet4: 网关
├── Sheet5: 项目
└── Sheet6: 子网

导出字段

每个 Sheet 包含完整的资源字段:

网络区域 Sheet

列名说明
ID网络区域ID
名称区域名称
编码区域编码
描述区域描述

单位 Sheet

列名说明
ID单位ID
名称单位名称
编码单位编码
描述单位描述

部门 Sheet

列名说明
ID部门ID
名称部门名称
编码部门编码
单位名称所属单位
上级部门上级部门名称
描述部门描述

网关 Sheet

列名说明
ID网关ID
IP地址网关IP
MAC地址网关MAC
网络区域所属网络区域
描述网关描述

项目 Sheet

列名说明
ID项目ID
名称项目名称
编码项目编码
部门所属部门
单位所属单位
描述项目描述

子网 Sheet

列名说明
ID子网ID
名称子网名称
CIDRCIDR表示法
网关关联网关IP
网络区域所属网络区域
VLAN IDVLAN标识
描述子网描述

导出 API

GET /api/full-export
Response: Excel文件下载

导入功能

导入流程

导入功能采用"预览-确认"的两步流程:

  1. 上传文件:上传包含数据的 Excel 文件
  2. 预览验证:系统验证数据并显示预览结果
  3. 确认导入:确认无误后执行正式导入

智能验证

导入时系统进行多层次的验证:

1. 格式验证

  • 检查 Excel 格式是否正确
  • 检查必需的 Sheet 是否存在
  • 检查列名是否匹配

2. 数据验证

  • 网络区域:名称和编码唯一性
  • 单位:名称+编码双重验证
  • 部门:验证单位存在性,部门名称唯一性
  • 网关:IP格式验证,网络区域存在性
  • 项目:验证部门存在性,项目名称唯一性
  • 子网:CIDR格式验证,网关和网络区域存在性

3. 依赖验证

按照依赖顺序验证:

网络区域 → 单位 → 部门 → 网关 → 项目 → 子网

依赖排序

系统自动按依赖关系处理导入顺序:

  1. 网络区域:无依赖,最先导入
  2. 单位:无依赖,可并行导入
  3. 部门:依赖单位,需先导入单位
  4. 网关:依赖网络区域
  5. 项目:依赖部门和单位
  6. 子网:依赖网关和网络区域

双重验证机制

单位资源支持名称+编码双重验证:

  • 新建:名称和编码都不存在时创建新记录
  • 更新:名称或编码存在时更新现有记录
  • 冲突:名称和编码分别匹配不同记录时报错

事务保护

导入过程使用数据库事务:

  • 所有资源在一个事务中处理
  • 任一资源导入失败则全部回滚
  • 确保数据一致性

导入结果报告

导入完成后返回详细的结果报告:

json
{
  "success": true,
  "summary": {
    "total_sheets": 6,
    "processed_sheets": 6,
    "total_records": 150,
    "success_records": 148,
    "failed_records": 2
  },
  "details": {
    "network_areas": {
      "total": 5,
      "created": 3,
      "updated": 2,
      "failed": 0
    },
    "units": {
      "total": 3,
      "created": 2,
      "updated": 1,
      "failed": 0
    },
    // ... 其他资源
  },
  "errors": [
    {
      "sheet": "部门",
      "row": 10,
      "message": "单位 '技术部' 不存在"
    }
  ]
}

导入 API

预览接口

POST /api/full-import/preview
Content-Type: multipart/form-data

file: Excel文件

响应:

json
{
  "success": true,
  "preview": {
    "network_areas": {
      "count": 5,
      "valid": 5,
      "invalid": 0
    },
    "units": {
      "count": 3,
      "valid": 3,
      "invalid": 0
    },
    // ... 其他资源
  },
  "errors": []
}

确认导入接口

POST /api/full-import
Content-Type: multipart/form-data

file: Excel文件

Excel 模板

下载模板

系统提供标准的导入模板下载:

GET /api/full-import/template
Response: Excel模板文件

填写规范

网络区域

名称编码描述
办公网络office办公区域网络
生产网络production生产环境网络

单位

名称编码描述
总公司hq总部
分公司1branch1第一分公司

部门

名称编码单位名称上级部门描述
技术部tech总公司技术部门
研发组dev总公司技术部研发小组

网关

IP地址MAC地址网络区域描述
192.168.1.100:11:22:33:44:55办公网络主网关

项目

名称编码部门单位描述
核心系统core技术部总公司核心业务系统

子网

名称CIDR网关网络区域VLAN ID描述
办公网段192.168.1.0/24192.168.1.1办公网络100办公使用

最佳实践

导入前准备

  1. 数据清理:清理 Excel 中的空行和无效数据
  2. 格式检查:确保数据格式正确
  3. 依赖确认:确认依赖的资源已存在或将在同一文件中导入
  4. 备份数据:导入前备份现有数据

导入策略

  1. 分批导入:大量数据建议分批导入
  2. 先预览:总是先使用预览功能检查数据
  3. 处理错误:根据错误提示修正数据后重新导入
  4. 验证结果:导入后验证数据完整性

导出策略

  1. 定期备份:定期导出数据作为备份
  2. 迁移数据:使用导出功能迁移数据到新环境
  3. 数据分析:导出数据用于离线分析
  4. 报表生成:基于导出数据生成报表

常见问题

Q: 导入时提示"依赖资源不存在"

A: 确保依赖的资源(如单位、部门)在同一导入文件中,或已存在于系统中。

Q: 如何更新现有数据?

A: 使用相同的名称/编码,系统会自动识别并更新现有记录。

Q: 导入失败如何回滚?

A: 导入使用事务保护,失败时自动回滚。可以修正数据后重新导入。

Q: 支持哪些 Excel 格式?

A: 支持 .xlsx 格式,不支持 .xls 格式。

基于 MIT 许可发布