背景
公司需要我们把字段到powerdesigner中。于是我开始搜如何将数据库建表语句逆向导入到powerdesigner中,方法倒是有,需要连接oracle数据库。可是我本地还没配oracle环境。
冥思苦想突然发现,原来前人早就有从excel批量导入powerdesigner的方法。
方案
vbs脚本!
步骤
- 第一步:复制附录代码,在桌面建一个txt文件,粘贴代码。
- 第二步:更改txt名称,改为excel.vbs
- 第三步:将你的excel格式改造如下图所示:
其中位置必须一致,可以纵向拓展,所有字段均严格按此图排列(颜色没必要)。
其中第一行为表的信息,第二行为固定格式,第三行至第N行为你的字段信息。
如果想建多个表,就继续加sheet,每个sheet布局均需严格按照图示。
- 打开powerdesigner,打开新建的项目。记住红框1的名字。
- 使用脚本。
- 打开桌面脚本。
- 选择脚本。
- 修改部分代码:将代码红框位置改为刚刚红框1的名字。
下面的路径为你excel的绝对路径。RUN即可导入。
附录
Option Explicit
Private CURRENT_MODEL_NAME
Private CURRENT_MODEL
Private TABLES
Private EXCEL_APP
Private FILE_PATH
CURRENT_MODEL_NAME = "数据库"
Set EXCEL_APP = CreateObject("Excel.Application")
FILE_PATH="C:\Users\Dell\Desktop\data.xlsx" '文件的绝对路径
'检查文件是否存在
If CheckFileExsistence() Then
'检查当前是否有已经打开的物理图
Call GetModelByName(CURRENT_MODEL)
If CURRENT_MODEL Is Nothing Then
MsgBox("请先打开一个名称为“" & CURRENT_MODEL_NAME & "”的物理数据模型(Physical Data Model),然后再进执行导入!")
Else
Set TABLES = CURRENT_MODEL.Tables
'根据EXCEL表格创建模型
ImportModels()
End If
Else
MsgBox "文件" + FILE_PATH + "不存在!"
End If
'============================================================
'导入模型
'============================================================
Sub ImportModels