PowerDesiginer导入表结构excel

Posted BuidManyBugs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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、检查表进行微调整

 

 

以上是关于PowerDesiginer导入表结构excel的主要内容,如果未能解决你的问题,请参考以下文章

abap 怎么excel导入数据

13.mysql—将 excel 表导入 mysql 时,时间字段格式问题解决

sqlserver 用命令如何导入导出表结构和表数据?

plsql怎么导入excel数据

通过 C# 导入 Excel 文件时的性能瓶颈

通过Navicat将Excel表中的数据导入到数据库