源码参考 PowerDesigner 表格导出为excel【https://www.cnblogs.com/gaocong/p/6553080.html】
这个代码把PowerDesigner定义的数据模型导出成excel文件确实很方便好用,不过原来的代码导出数据表的顺序是数据模型创建的顺序,而复杂系统的数据模型定义可能不是按名称顺序创建的,所以调整了一下,调整后的代码,导出的顺序就是按数据表的名称顺序排列的了。
我习惯数据表中英文名称都使用英文,然后在描述里写中文名称,代码里也做了修改,如果需要继续使用中文名称的,可以对比与原文件的区别,自行修改几处差异即可。
在PowerDesigner里切换到数据模型窗口,然后按快捷键ctrl + shift +x,然后运行脚本,需要本地安装有office。
代码如下:
'******************************************************************************
Option Explicit
Dim rowsNum
rowsNum = 0
'-----------------------------------------------------------------------------
' Main function
'-----------------------------------------------------------------------------
' Get the current active model
Dim Model
Set Model = ActiveModel
If (Model Is Nothing) Or (Not Model.IsKindOf(PdPDM.cls_Model)) Then
MsgBox "The current model is not an PDM model."
Else
Dim tableCount, maxTableNum, tableNames
tableCount = Model.tables.count
maxTableNum = tableCount - 1
'MsgBox tableCount
tableNames = SortTableList(Model, tableCount, maxTableNum)
' Get the tables collection
'创建EXCEL APP
dim beginrow
DIM EXCEL, colsSheet, tablesSheet
set EXCEL = CREATEOBJECT("Excel.Application")
EXCEL.workbooks.add(-4167)'添加工作表
EXCEL.workbooks(1).sheets(1).name ="表结构"
set colsSheet = EXCEL.workbooks(1).sheets("表结构")
EXCEL.workbooks(1).sheets.add
EXCEL.workbooks(1).sheets(1).name ="目录"
set tablesSheet = EXCEL.workbooks(1).sheets("目录")
' tables list
ShowTableList Model, tablesSheet, tableNames, maxTableNum
' tables properties list
ShowProperties Model, colsSheet, tablesSheet, tableNames, maxTableNum
' tables properties list sheet col set
EXCEL.workbooks(1).Sheets(2).Select
EXCEL.visible &#