PowerDesigner导出表到Excel,包含字段, 行冗余表名

这篇博客介绍了如何使用PowerDesigner的快捷键组合Ctrl+Shift+X配合内嵌的VBScript代码,一键将当前PDM中的所有表及其字段详细信息导出到Excel。导出的内容包括表名、字段名、数据类型、长度、是否为主键和必填等关键信息,生成的Excel表格自动调整了列宽,方便查看和管理。
摘要由CSDN通过智能技术生成

PowerDesigner导出表到Excel,包含字段, 行冗余表名

使用方式:

打开需要导出的pdm,然后按快捷键:ctrl + shift +x

拷贝以下代码,点击Run(F5), 开始递归目录,稍等片刻就生成Excel

导出的excel样式:

          
TableCodeTableNameTableCommentColumnCodeColumnNameColumnCommentColumnDatatypeColumnLengthColumnPrimaryColumnMandatory
PARA_ADMDVS_APARA_ADMDVS_A全国行政区划表全国行政区划表ADMDVS_CODG行政区划代码行政区划代码VARCHAR(10)10TRUETRUE
PARA_ADMDVS_APARA_ADMDVS_A全国行政区划表全国行政区划表ADMDVS_NAME行政区划名称行政区划名称VARCHAR(100)100FALSEFALSE
PARA_ADMDVS_APARA_ADMDVS_A全国行政区划表全国行政区划表PRNT_ADMDVS_CODG上级行政区划上级行政区划VARCHAR(10)10FALSEFALSE
PARA_ADMDVS_APARA_ADMDVS_A全国行政区划表全国行政区划表ADMDVS_CODG_PROV所属省级区划代码所属省级行政区划代码VARCHAR(10)10FALSEFALSE
PARA_ADMDVS_APARA_ADMDVS_A全国行政区划表全国行政区划表ADMDVS_CODG_CITY所属市级区划代码所属市级行政区划代码VARCHAR(10)10FALSEFALSE
PARA_ADMDVS_APARA_ADMDVS_A全国行政区划表全国行政区划表ADMDVS_LV行政区划级别行政区划级别(1省、2市、3县)VARCHAR(1)1FALSEFALSE
'******************************************************************************
'* File:     Export_model_to_excel.vbs
'* Purpose:  将PDM 的表导入Excel中 ,ctrl+shift+x 粘贴代码点击运行
'* Title:    
'* Category: 
'* Version:  1.0
'* Company:  Sybase Inc. 
'******************************************************************************
 
Option Explicit
 
 
Dim nb
Dim x1  
'
' get the current active model
'
Dim mdl ' the current model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
   MsgBox "There is no Active Model"
End If
Dim fldr
Set Fldr = ActiveDiagram.Parent
nb =2
setExcel()
ListObjects(fldr)
x1.Columns("A:J").EntireColumn.AutoFit 'To adjust the column's width.
MsgBox "导出完成,请打开Excel查看"
 
Private Sub setExcel()
   ' Open & Create Excel Document
   Set x1 = CreateObject("Excel.Application") 
   x1.Visible = True 
   x1.Workbooks.Add 
   x1.Range("A"+Cstr(nb)).Value ="TableCode"
   x1.Range("B"+Cstr(nb)).Value ="TableName"
   x1.Range("C"+Cstr(nb)).Value ="TableComment"  
   x1.Range("D"+Cstr(nb)).Value ="ColumnCode"
   x1.Range("E"+Cstr(nb)).Value ="ColumnName"
   x1.Range("F"+Cstr(nb)).Value ="ColumnComment"     
   x1.Range("G"+Cstr(nb)).Value ="ColumnDatatype"    
   x1.Range("H"+Cstr(nb)).Value ="ColumnLength" 
   x1.Range("I"+Cstr(nb)).Value ="ColumnPrimary" 
   x1.Range("J"+Cstr(nb)).Value ="ColumnMandatory" 
   x1.Range("A"+Cstr(nb)+":J"+Cstr(nb)).font.Bold=true 
   nb = nb+1
End Sub
 
 
Private Sub ListObjects(fldr)
   Dim obj ' running object
   For Each obj In fldr.tables
      DescribeObject obj
   Next
End Sub
 
 
Sub DescribeObject(CurrentObject)
   if CurrentObject.ClassName ="Association-Class link" then exit sub
   output "Found "+CurrentObject.ClassName+" "+CurrentObject.Name+", Created by "+CurrentObject.Creator+" On "+FormatDateTime(CurrentObject.CreationDate,vbShortDate)   
   Dim startRow
   startRow = nb
   Dim col ' running column
   for each col in CurrentObject.columns
         x1.Range("A"+Cstr(nb)).Value = CurrentObject.Code
         x1.Range("B"+Cstr(nb)).Value = CurrentObject.Name   
         x1.Range("C"+Cstr(nb)).Value = CurrentObject.Comment 
         x1.Range("D"+Cstr(nb)).Value = col.Code
         x1.Range("E"+Cstr(nb)).Value = col.Name 
         x1.Range("F"+Cstr(nb)).Value = col.Comment     
         x1.Range("G"+Cstr(nb)).Value = col.Datatype    
         x1.Range("H"+Cstr(nb)).Value = col.Length 
         x1.Range("I"+Cstr(nb)).Value = col.Primary
         x1.Range("J"+Cstr(nb)).Value = col.Mandatory 
         nb = nb+1  
    next
    x1.Range("A"+Cstr(startRow)+":J"+Cstr(nb-1)).Borders.LineStyle = 1
    nb = nb+1  
End Sub
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值