码迷,mamicode.com
首页 > 其他好文 > 详细

PowerDesiginer导入表结构excel

时间:2018-04-27 19:49:57      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:数据类型   col   confirm   current   脚本   lse   bsp   table   rip   

从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、检查表进行微调整

 

 

技术分享图片

PowerDesiginer导入表结构excel

标签:数据类型   col   confirm   current   脚本   lse   bsp   table   rip   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!