zoukankan      html  css  js  c++  java
  • 根据excle说明文档建表

     在Excel里整理好的表模型数据,可直接导入PowerDesigner。此功能通过PowerDesigner的脚本功能来实现,使用起来也简单。具体操作方法:

        打开PowerDesigner,新建模型,
    创建物理模型(Physical Data Model)-因不同的pd模型在使用时 是不通的编码所以这里测试使用Physical Data Model

    点击Tools|Execute Commands|Edit/Run Script菜单或按下快捷键Ctrl + Shift + X打开脚本窗口,输入示例VBScript脚本,修改其中的Excel模板路径及工作薄页签,点Run按钮执行即可。

        

       示例VBScript脚本如下:

    复制代码
    '导入Excel表结构
    '开始
    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 "D:/test.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  
    
    'on error Resume Next
    'set table = mdl.Tables.CreateNew '创建一个表实体
    'table.Name = "xxx表" '指定表名,如果在Excel文档里有,也可以通过.Cells(rwIndex, 1).Value指定
    'table.Code = "xxx"   '指定表Code,如果在Excel文档里有,也可以通过.Cells(rwIndex, 2).Value指定
    'count = count + 1
    For rwIndex = 1 To 200 step 1 '指定要遍历的Excel行标
            With x1.Workbooks(1).Worksheets("Sheet1")             
                If .Cells(rwIndex, 1).Value = "" Then                            
                   Exit For             
                End If 
                If .Cells(rwIndex, 3).Value = "" Then '指定表名      
                   set table = mdl.Tables.CreateNew                
                   table.Name = .Cells(rwIndex , 1).Value                
                   table.Code = .Cells(rwIndex , 2).Value                
                   count = count + 1             
                Else 
                   'colName = .Cells(rwIndex, 1).Value               
                   set col = table.Columns.CreateNew '创建列
                   'MsgBox .Cells(rwIndex, 1).Value, vbOK + vbInformation, "列"                
                   col.Name = .Cells(rwIndex, 1).Value '指定列名
                   'MsgBox col.Name, vbOK + vbInformation, "列"                
                   col.Code = .Cells(rwIndex, 2).Value '指定列code
                                        
                   col.Comment = .Cells(rwIndex,1).Value '指定列说明    
                               
                   col.DataType = .Cells(rwIndex, 3).Value '指定列数据类型
                   
                   If .Cells(rwIndex, 4).Value = "" Then
                      col.Mandatory = true'指定列是否可空,true为不可空                  
                   End If
                   
                   If rwIndex = 2 Then
                      col.Primary = true'指定主键
                   End If
                End If        
            End With 
    Next
    
    MsgBox "生成数据表结构共计" + CStr(count), vbOK + vbInformation, "张表"  
    
    Exit Sub 
    End Sub
    复制代码

       示例Excel模板如下:

       

  • 相关阅读:
    设计模式-11-代理模式
    设计模式-10-装饰者
    设计模式-9-组合
    设计模式-8-适配器
    设计模式-7-原型模式
    设计模式-6-建造者
    设计模式-5-单例模式
    u-boot-1.1.6 设置新分区支持设备树
    u-boot-2014.10移植(8)重定位,支持NAND启动
    u-boot-2014.10移植(7)修改环境变量的存储位置
  • 原文地址:https://www.cnblogs.com/lqla15/p/11412431.html
Copyright © 2011-2022 走看看