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