1、基础样例表和数据
Excel数据表,样例中有两个sheet。样表及数据如下:
sheet1=>
?
| 主题域 | 表注释 | 表英文名称 | 表中文名称 | 列名 | 列中文名称 | 列注释 | 数据类型 | 主键 | 是否为空 | 默认值 |
| 协议 | order_info | 订单信息表 | STATIS_DATE | 统计时间 | varchar2(100) | |||||
| order_info | 订单信息表 | ORDR_GUID | 订单GUID | varchar2(101) | Y | |||||
| order_info | 订单信息表 | CO_CD | 公司代码 | varchar2(102) | ||||||
| order_info | 订单信息表 | CO_NAME | 公司名称 | varchar2(103) | ||||||
| order_info | 订单信息表 | SERV_ORDR_NO | 服务订单号 | varchar2(104) | ||||||
| order_info | 订单信息表 | OMS_ORDR_NO | OMS行订单号 | varchar2(105) | ||||||
| order_info | 订单信息表 | ORDR_TYPE | 订单类型 | varchar2(106) | ||||||
| order_info | 订单信息表 | SERV_ORG | 服务组织 | varchar2(107) | ||||||
| order_info | 订单信息表 | QA_FLG | 质保标识 | varchar2(108) | ||||||
| 协议 | personnel | 人员信息表 | STATIS_DATE | 统计时间 | VARCHAR(14) | |||||
| personnel | 人员信息表 | CLIENT | 客户端 | VARCHAR(9) | Y | |||||
| personnel | 人员信息表 | PARTNER | 业务合作伙伴标识 | VARCHAR(30) | ||||||
| personnel | 人员信息表 | BEGDA | 开始日期 | VARCHAR(14)) | ||||||
| personnel | 人员信息表 | ENDDA | 结束日期 | VARCHAR(14)) | ||||||
| personnel | 人员信息表 | BUKRS | 公司代码 | VARCHAR(12) |
?
sheet2=>
?
| 主题域 | 表注释 | 表英文名称 | 表中文名称 | 列名 | 列中文名称 | 列注释 | 数据类型 | 主键 | 是否为空 | 默认值 |
| 交易 | deal_hurry | 交易流水表 | STATIS_DATE | 统计时间 | date | |||||
| deal_hurry | 交易流水表 | ORDR_GUID | 订单GUID | varchar2(101) | Y | |||||
| deal_hurry | 交易流水表 | CO_CD | 公司代码 | int | Y | 1000 | ||||
| deal_hurry | 交易流水表 | CO_NAME | 公司名称 | varchar2(103) | ||||||
| deal_hurry | 交易流水表 | SERV_ORDR_NO | 服务订单号 | varchar2(104) | ||||||
| deal_hurry | 交易流水表 | OMS_ORDR_NO | OMS行订单号 | number(22,3) | ||||||
| deal_hurry | 交易流水表 | ORDR_TYPE | 订单类型 | varchar2(106) | ||||||
| deal_hurry | 交易流水表 | SERV_ORG | 服务组织 | varchar2(107) | ||||||
| deal_hurry | 交易流水表 | QA_FLG | 质保标识 | varchar2(108) | ||||||
| 交易 | person | 人员表 | STATIS_DATE | 统计时间 | date | |||||
| person | 人员表 | CLIENT | 客户端 | VARCHAR(9) | Y | |||||
| person | 人员表 | PARTNER | 业务合作伙伴标识 | VARCHAR(30) | ||||||
| person | 人员表 | BEGDA | 开始日期 | date | Y | |||||
| person | 人员表 | ENDDA | 结束日期 | date | Y | |||||
| person | 人员表 | BUKRS | 公司代码 | int |
?
截图=>
?
2、Excel导入到PDM的脚本
Import_PDM_From_Excel.vbs
'******************************************************************************
'* Purpose: 从Excel中读取信息创建PDM模型
'* Title:
'* Category: 创建
'* Author: nisj
'* Created: 2015年7月31日
'* Modified:
'* Use: 打开PDM,创建新的PDM,运行本脚本(Ctrl+Shift+X)
'* Excel 格式要求
'* MODEL Sheet
'* |A |B |C |D |E |F |G |H |I |J |K |
'* 主题域 |表注释 |表英文名称 |表中文名称 |列名 |列中文名称 |列注释 |数据类型 |主键 |是否为空 |默认值 |
'* Version: 1.0
'* Comment:
'******************************************************************************
Option Explicit
' Model sheet中的列信息
CONST CELL_A="A" '主题域(Pachage)
CONST CELL_B="B" '表注释
CONST CELL_C="C" '表英文名称
CONST CELL_D="D" '表中文名称
CONST CELL_E="E" '列名
CONST CELL_F="F" '列中文名称
CONST CELL_G="G" '列注释
CONST CELL_H="H" '数据类型
CONST CELL_I="I" '是否主键
CONST CELL_J="J" '是否可空
CONST CELL_K="K" '默认值
CONST str_iskey="Y"
'表的所属者
CONST str_username="srv"
CONST isclear_columns = true '是否先删除表的所有列,如果是false则不会删除excel中没有的列,如果是true,则会重新创建相应表的所有列
' get the current active model
DIM mdl ' 定义当前的模型
SET mdl = ActiveModel '通过全局参数获得当前的模型
IF (mdl IS NOTHING) THEN
MsgBox "没有选择模型,请选择一个模型并打开"
ELSEIF NOT mdl.IsKindOf(PdPDM.cls_Model) THEN
MsgBox "当前选择的不是一个物理模型(PDM)."
ELSE
'选择需要导入的Excel文件
' 打开Excel
DIM xlApp '定义Excel对象
SET xlApp = CreateObject("Excel.Application")
xlApp.DisplayAlerts = FALSE
DIM xlBook '定义Excel Sheet
SET xlBook = xlApp.WorkBooks.Ope