Excel批量导入power designer

来源:互联网 发布:酷听说软件下载 编辑:程序博客网 时间:2024/06/16 22:54

习惯在Excle定义数据字典结构,在通过Excel定义的结构输入到power designer。

思路

通过固定Excle结构,将excel数据字典导入到power designer。

实现

打开powerdesigner。ctrl+shift+x输入下面内容:

'* File:     excel2pdm.vbs'* Purpose:  Excel批量导入表结构到power designer'* Category: '* Version:  1.0'*'* 所有的表设计都放在一个excel的一个sheet中,每个表中间空一行,表体都有表头说明如下,'* 再前面一行是表名和表的说明,分别在A和C列。下面格式直接拷贝到excel中就可以看到,空格是制表符。'******************************************************************************  '                             Excel 格式如下  'tableone       表一          '字段 类型  键   空   说明  备注'id Long    主键  N   唯一标识    没有意义,自增                                   '******************************************************************************  Option ExplicitDim mdl ' the current modelSet mdl = ActiveModelIf (mdl Is Nothing) Then    MsgBox "There is no Active Model"End IfDim HaveExcelDim RQRQ = 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 "C:\Users\Administrator\Downloads\data20171102.xlsx"  '指定excel文档路径    x1.Workbooks(1).Worksheets("Sheet1").Activate   '指定要打开的sheet名称Else    HaveExcel = FalseEnd Ifa x1, mdlsub a(x1, mdl)dim rwIndexdim tableNamedim colnamedim tabledim coldim countdim abcon error Resume Next'--------------------------------'下面是读取excel,添加表实体属性'--------------------------------For rwIndex = 1 To 400  '指定要遍历的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    '指定列数据类型         If.Cells(rwIndex, 3).Value = "主键" Then'指定主键                col.Primary =true            End If                  If.Cells(rwIndex, 4).Value = "N" Then'指定列是否可空 true 为不可空                col.Mandatory =true            End If            col.Name = .Cells(rwIndex, 5).Value '指定列name                        col.Comment = .Cells(rwIndex, 6).Value  '指定列说明        End If    End WithNext    MsgBox "生成数据表结构共计 " + CStr(count), vbOK + vbInformation, "表"Exit SubEnd sub

需要将脚本中x1.Workbooks.Open改成自己的Excel路径,点击run后生成Tables,如下:
这里写图片描述

然后再右点击PhysicalDiagram_1->Show Symbols->Select All即可
这里写图片描述

Excel导入模板见 http://download.csdn.net/download/y378935681/10094002

原创粉丝点击