powerdesigner通过导入excel方式创建物理表详解

一、创建excel表

  本示例中创建了三张sheet表分别是t_user、t_role、t_user_role三张表(sheet表可以建多个,表中数据的格式其实是可以自定义的,此处不做阐述)。如图所示:

powerdesigner通过导入excel方式创建物理表详解

 

 

 二、创建新的物理数据模型

1、打开PowerDesigner,点击【File】==》【New Model】==》【Model types】==》【Physical Data Model】==》【Physical Diagram】==》【OK】。如图所示:

powerdesigner通过导入excel方式创建物理表详解

 

Ps:*代表未保存项目,创建后【CTRL+S】可能是个好习惯。

 powerdesigner通过导入excel方式创建物理表详解

 

2、然后点击【Tools】==》【Execute Commands】==》【Edit/Run Script】编辑运行相关脚本。如图所示:

powerdesigner通过导入excel方式创建物理表详解

 

输入以下脚本内容,点击【Run】执行脚本,如图所示:

Option Explicit
dim shet
dim cnt
cnt = 0
For each shet in array("t_user","t_role","t_user_role") '列出excel文件中所用需要读取的sheet的名称,例如:t_user、t_role、t_user_role...
Dim mdl ' 当前的模型
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 "excel文档路径" '指定excel文档路径
 x1.Workbooks(1).Worksheets(shet).Activate '指定要打开的sheet名称
Else
 HaveExcel = False
End If

a x1, mdl
cnt = cnt + 1
Next
MsgBox "生成数据表结构共计 " + CStr(cnt), vbOK + vbInformation, "表"

sub a(x1, mdl)
dim rwIndexdim table
dim col


on error Resume Next
'--------------------------------
'读取excel中的sheet表,并在model中创建物理表
'--------------------------------
For rwIndex = 1 To 10 '指定遍历开始行-遍历的行数
 With x1.Workbooks(1).Worksheets(shet)'需要循环的sheet名称
  If rwIndex = 1 Then'sheet表中的第一行第一列为表中文名,第一行第二列为英文名,第一行第三列为表注释信息
   set table = mdl.Tables.CreateNew '创建一个表实体
   table.Code = .Cells(rwIndex,2).Value'获取表英文名,即表名
   table.Name = .Cells(rwIndex,1).Value'获取表中文名
   table.Comment = .Cells(rwIndex,3).Value '获取表注释信息
   Continue
  End If
   If rwIndex = 1 or rwIndex = 2 or .Cells(rwIndex,1).Value = "" Then '忽略第一行、第二行和空行(第一行为表相关信息,第二行为表头信息)
   continue 
  Else
   set col =table.Columns.CreateNew '创建一个字段实体
    col.Code = .Cells(rwIndex, 1).Value '指定model中code在sheet表中对应的列
   col.DataType = .Cells(rwIndex, 3).Value '指定model中的DataType在sheet表中对应的列
    col.Name = .Cells(rwIndex, 2).Value '指定model中的Name在sheet表中对应的列   
   col.Comment = .Cells(rwIndex, 5).Value '指定model中的Comment在sheet表中对应的列
  End If
 End With
Next
Exit Sub
End sub

powerdesigner通过导入excel方式创建物理表详解

 

3、导出SQL语句,并在数据库中建表。工具栏中点击【Database】==》【Generate Database】==》【确定】保存SQL文件。如图所示:

powerdesigner通过导入excel方式创建物理表详解

 

 4、选择一个数据库,【表】右键==》【运行SQL文件】==》【选择文件】==》【开始】执行SQL文件创建表。如图所示:

powerdesigner通过导入excel方式创建物理表详解

 

 

作者:lightbc

出处:https://www.cnblogs.com/lightbc/p/14564016.html

上一篇:DFS_Sodoku


下一篇:[LeetCode] 1030. Matrix Cells in Distance Order 距离顺序排列矩阵单元格