PowerDesiginer导入表结构excel

从Excel中设计好表结构导入到PowerDesiginer。

1、编写Excel模板(模板和后面的脚本需要一致)

2、打开PowerDesigner,创建物理模型(Physical Data Model)

3、在PowerDesigner菜单栏中,依次点击“Tools ->Excute Commands->Edit/Run Script..”

‘******************************************************************************
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:\Temp\1.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 300 step 1   ‘指定要遍历的Excel行标  由于第2行是表头,从第1行开始,看你这个表设计多少行
    With x1.Workbooks(1).Worksheets("Sheet1")‘需要循环的sheet名称
         ‘If .Cells(rwIndex, 1).Value = "" Then
               ‘Exit For
        ‘ End If
        ‘If .Cells(rwIndex,1).Value = "表" Then ‘And .Cells(rwIndex,2).Value <> "" And .Cells(rwIndex,3).Value <> "" Then‘Excel中表头的1列是表名,2表名中文,3是表注释
            If rwIndex = 1 then ‘第一行取表信息
               set table = mdl.Tables.CreateNew ‘创建一个表实体
               table.Code = .Cells(rwIndex,2).Value‘从excel中取得表名称和编码
               table.Name = .Cells(rwIndex,3).Value‘
               table.Comment = .Cells(rwIndex,4).Value  ‘指定列说明
               ‘count = count + 1
               Continue
            End If
         If .Cells(rwIndex,1).Value = "" or .Cells(rwIndex,1).Value = "字段" Then ‘第1列为空的都可以忽略
            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 = "Y" 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  ‘指定列说明
               count = count + 1
          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  

    End With  

Next
    MsgBox "生成数据表结构共计 " + CStr(count), vbOK + vbInformation, "表"
Exit Sub
End sub  

4、运行脚本

5、检查表进行微调整

原文地址:https://www.cnblogs.com/panshare/p/8963859.html

时间: 2024-07-29 10:39:59

PowerDesiginer导入表结构excel的相关文章

PL/SQL导出、导入 表结构和表数据

导出表结构:Tools->Export User Objects 导出表数据:Tools->Exports Tables 导入表结构:Tools->Import Tables ->Oracle Import 导入表数据:Tools->Import Tables ->SQL Insert

db2导入表结构

SQL0752N  Connecting to a database is not permitted within a logical unit ofwork when the CONNECT type 1 setting is in use.  SQLSTATE=0A001 解释:发出 COMMIT 或 ROLLBACK语句之前,尝试连接另一个数据库或同一个数据库.在 CONNECT 1类环境内不能处理该请求.退出执行reset重新执行就可以了, [[email protected] ~]$

mysql导入数据库_只用frm向mysql导入表结构

网上一个连接mysql的jsp代码段,给了数据库的备份文件,但是只有frm, mysql的每张表有三个文件,分别是,*.frm是描述了表的结构,*.MYD保存了表的数据记录,*.MYI则是表的索引, 查了下资料,原来只有frm文件也能导入. 过程如下: 1.在mysql目录下的data目录中,找到要导入表所在的数据库的名称,把frm文件放进去,比如我这里是offer.frm,数据库名称是netshop, 放到数据库netshop目录下之后,在mysql中show tables显示如下 在这里ta

用命令从mysql中导出/导入表结构及数据

在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看:mysqldump最常用的:mysqldump -uroot -pmysql databasefoo table1 table2 > foo.sql这样就可以将数据库databasefoo的表table1,table2以sql形式导入foo.sql中,其中-uroot参数表示访问数据库的用户名是root,如果有密码还需要加上-p参数Eg: C:\Users\jack> mysqldump -uroo

mysql导入数据库_仅仅用frm向mysql导入表结构

网上一个连接mysql的jsp代码段,给了数据库的备份文件.可是仅仅有frm, mysql的每张表有三个文件.各自是,*.frm是描写叙述了表的结构.*.MYD保存了表的数据记录.*.MYI则是表的索引, 查了下资料,原来仅仅有frm文件也能导入. 步骤例如以下: 1.在mysql文件夹下的data文件夹中,找到要导入表所在的数据库的名称,把frm文件放进去,比方我这里是offer.frm,数据库名称是netshop, 放到数据库netshop文件夹下之后.在mysql中show tables显

导入表结构复习 导入模块,函数名称,地址遍历

关于PE结构导入表,以前只是手动分析,没有通过编程来实现.而且PE文件结构,不巩固的话,一段时间之后就会忘记,所以记录下这次试验,为IAT挂钩做好准备,也算是复习一下. 测试 环境:windows xp sp3 IDE: vs 2008 sp1 build:release #include <windows.h> #include <stdio.h> #include <DbgHelp.h> #pragma comment(lib,"dbghelp.lib&q

mysql导出/导入表结构以及表数据

导出: 命令行下具体用法如下:  mysqldump -u用戶名 -p密码 -d 数据库名 表名 脚本名; 1.导出数据库为dbname的表结构(其中用戶名为root,密码为dbpasswd,生成的脚本名为db.sql)    mysqldump -uroot -pdbpasswd -d dbname >db.sql; 2.导出数据库为dbname某张表(test)结构    mysqldump -uroot -pdbpasswd -d dbname test>db.sql; 3.导出数据库为

powerdesigner 连接 Oracle ,并将表结构导入到powerdesigner中

powerdesigner 详细很多人都用过,很多人可能也有用来连接各种数据库以及从数据库中把表结构更新到powerdesigner的model中,或者将自己设计的表结构应用到数据库中.那么我今天就说是如果连接oracle,以及把oracle的表结构导入到powerdesigner中进行设计. 应用环境: Windows 10 64位: oracle 11g: powerdesigner 15.1: 如果没有安装odbc驱动,直接选择Microsoft自带的oracle odbc 进行连接通常会

使用expdp 和impdp 导入导出 表结构

//首先在oracle中创建一个虚拟目录用来做为导出的dump文件输出并赋予读写权限 create directory dmpdir as '/home/oracle/dmp';grant read,write on directory dmpdir to public; //验证 select * from dba_directories; 可以看到虚拟目录已经创建成功了 物理目录需不需要手动创建我没验证,我在做的时候事先创建好了物理目录 为了避免莫名奇妙的问题我们还是手动创建一下物理目录吧O