PowerDesigner写脚本的方式导入EXCEl表数据

需要将Excel表中的大量表数据放在powerDesign上面,上网百度了教程,做了些修改就可以使用

EXCEL表结构

MLOS_FM_FEEDETAIL  代理收入单从表
字段名称 数据类型 主键 是否为空 字段中文名
SHEETNO VARCHAR2(30) NO NOT NULL 收入单号
SERIALNO NUMBER NO NULL 未用
FEEID VARCHAR2(30) NO NOT NULL 收入类型
APPID VARCHAR2(30) NO NOT NULL 项目编号
ORISHEETTYPE VARCHAR2(30) NO NULL 未用
ORISHEETNO VARCHAR2(30) NO NULL 未用
AMOUNT NUMBER(10,3) NO NULL 含税金额



PD脚本

'******************************************************************************  

Option Explicit


Dim mdl ' the current model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "There is no Active Model"
End If


Dim HaveExcel
Dim RQ
RQ = vbYes 'MsgBox("Is Excel Installed on your machine ?", vbYesNo + vbInformation, "Confirmation")
If RQ = vbYes Then
HaveExcel = True
' Open & Create Excel Document
Dim x1  '
Set x1 = CreateObject("Excel.Application")
x1.Workbooks.Open "E:\亚信\8-15\农资分销业务\商品资料.xlsx" '指定excel文档路径
x1.Workbooks(1).Worksheets("Sheet1").Activate '指定要打开的sheet名称
Else
HaveExcel = False
End If


a x1, mdl
sub a(x1, mdl)
dim rwIndex
dim tableName
dim colname
dim table
dim col
dim count
dim abc


on error Resume Next
'--------------------------------
'下面是读取excel,添加表实体属性
'--------------------------------
For rwIndex = 1 To 253 '指定要遍历的Excel行标  由于第2行是表头,从第1行开始,看你这个表设计多少行
With x1.Workbooks(1).Worksheets("Sheet1")'需要循环的sheet名称
If .Cells(rwIndex,1).Value <> "" And  .Cells(rwIndex,2).Value = "" And .Cells(rwIndex,3).Value <> "" Then'Excel中表头的1列是表名,2空,3是表注释
set table = mdl.Tables.CreateNew '创建一个表实体
table.Code = .Cells(rwIndex,1).Value'从excel中取得表名称和编码
table.Name = .Cells(rwIndex,3).Value'
table.Comment = .Cells(rwIndex,3).Value  '指定列中文名
count = count + 1
Continue
End If
'If (.Cells(rwIndex,1).Value = "" And .Cells(rwIndex,2).Value = "" And .Cells(rwIndex,3).Value = "") Or (.Cells(rwIndex,1).Value <> "" And  .Cells(rwIndex,2).Value = "" And .Cells(rwIndex,3).Value <> "")Then
      If .Cells(rwIndex,2).Value = "" or .Cells(rwIndex,1).Value = "字段" Then '第二列为空的都可以忽略
continue '这里忽略空行和表名行、表头行
Else 
set col =table.Columns.CreateNew '创建一列/字段
         col.Code = .Cells(rwIndex, 1).Value '指定列code
         col.DataType = .Cells(rwIndex, 2).Value '指定列数据类型
col.Name = .Cells(rwIndex, 3).Value '指定列name
 
           End If
End With
Next
MsgBox "生成数据表结构共计 " + CStr(count), vbOK + vbInformation, "表"
Exit Sub
End sub
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值