PowerDesigner遍历导出所有表结构到Excel

PowerDesigner遍历导出所有表到Excel

1.打开需要导出表结构到Excel的pdm文件

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

在这里插入图片描述

3.VBScript脚本

'******************************************************************************
'* File:     pdm2excel.vbs
'* Purpose:  分目录递归,查找当前PDM下所有表,并导出Excel
'* Title:    
'* Category: 
'* Version:  1.0
'******************************************************************************
Option Explicit
ValidationMode = True
InteractiveMode = im_Batch
' get the current active model
Dim mdl ' the current model
Set mdl = ActiveModel
Dim EXCEL,sheet,rowsNum
rowsNum = 1If (mdl Is Nothing) ThenMsgBox "There is no Active Model"
ElseSetExcelListObjects(mdl)
End If
'-----------------------------------------------------------------------------
' Sub procedure to scan current package and print information on objects from current package
' and call again the same sub procedure on all children pacakge 
' of the current package
'-----------------------------------------------------------------------------
Private Sub ListObjects(fldr)output "Scanning " & fldr.codeDim obj ' running objectFor Each obj In fldr.children' Calling sub procedure to print out information on the objectDescribeObject obj,fldr.nameNext' go into the sub-packagesDim f ' running folderFor Each f In fldr.Packages'calling sub procedure to scan children packageListObjects fNext
End Sub
'-----------------------------------------------------------------------------
' Sub procedure to print information on current object in output
'-----------------------------------------------------------------------------
Private Sub DescribeObject(CurrentObject,packageName)if not CurrentObject.Iskindof(cls_NamedObject) then exit subif CurrentObject.Iskindof(cls_Table) then ExportTable CurrentObject, sheet,packageNameelseoutput "Found "+CurrentObject.ClassName+" """+CurrentObject.Name+""", Created by "+CurrentObject.Creator+" On "+Cstr(CurrentObject.CreationDate)   End if
End SubSub SetExcel()Set EXCEL= CreateObject("Excel.Application")' Make Excel visible through the Application object.EXCEL.Visible = TrueEXCEL.workbooks.add(-4167)'添加工作表EXCEL.workbooks(1).sheets(1).name ="PDM导出到Excel"set sheet = EXCEL.workbooks(1).sheets("PDM导出到Excel")' Place some text in the first Row of the sheet.sheet.Cells(rowsNum, 1).Value = "序号"sheet.Cells(rowsNum, 2).Value = "表名"sheet.Cells(rowsNum, 3).Value = "表中文名"sheet.Cells(rowsNum, 4).Value = "表注释"sheet.Cells(rowsNum, 5).Value = "字段名"sheet.Cells(rowsNum, 6).Value = "字段中文名"sheet.Cells(rowsNum, 7).Value = "字段注释"sheet.Cells(rowsNum, 8).Value = "是否主键"sheet.Cells(rowsNum, 9).Value = "是否非空"sheet.Cells(rowsNum, 10).Value = "字段类型"sheet.Cells(rowsNum, 11).Value = "表所在package名称"
End SubSub ExportTable(tab, sheet,packageName)Dim col ' running columnDim colsNumcolsNum = 0for each col in tab.columnscolsNum = colsNum + 1rowsNum = rowsNum + 1sheet.Cells(rowsNum, 1).Value = colsNumsheet.Cells(rowsNum, 2).Value = tab.codesheet.Cells(rowsNum, 3).Value = tab.namesheet.Cells(rowsNum, 4).Value = tab.commentsheet.Cells(rowsNum, 5).Value = col.codesheet.Cells(rowsNum, 6).Value = col.namesheet.Cells(rowsNum, 7).Value = col.commentIf col.Primary = true Thensheet.cells(rowsNum, 8) = "是" Elsesheet.cells(rowsNum, 8) = "否" End IfIf col.Mandatory = true Thensheet.cells(rowsNum, 9) = "是" Elsesheet.cells(rowsNum, 9) = "否" End Ifsheet.Cells(rowsNum, 10).Value = col.datatypesheet.Cells(rowsNum, 11).Value =packageNamenext'设置列宽sheet.Columns(1).ColumnWidth =5 sheet.Columns(2).ColumnWidth = 30 sheet.Columns(3).ColumnWidth = 30 sheet.Columns(4).ColumnWidth = 30 sheet.Columns(5).ColumnWidth = 30 sheet.Columns(6).ColumnWidth = 30 sheet.Columns(7).ColumnWidth = 30 sheet.Columns(8).ColumnWidth = 10 sheet.Columns(9).ColumnWidth = 10 sheet.Columns(10).ColumnWidth = 20 sheet.Columns(11).ColumnWidth = 30 '若果需要表头居中显示就把下面的注释内容放开'sheet.Range(sheet.cells(1,1),sheet.cells(1,11)).HorizontalAlignment = 3sheet.Range(sheet.cells(1,1),sheet.cells(1,11)).Font.Bold = Trueoutput "Exported table: "+ +tab.Code+"("+tab.Name+")"
End Sub 

[2024-06-08]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/849972.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Edge浏览器十大常见问题,一次性解决!

Edge曾被称为最好用的浏览器,拳打Chrome脚踢firefox, 可如今却隐藏着像是播放卡顿、下载缓慢、广告繁多等诸多问题,不知道各位还在用吗? 今天小编收集整理了Edge浏览器十大烦人问题,并提供简单有效的解决办法,让你的E…

springboot+websocket+vue聊天室

目录 一、项目实现内容二、websocket三、实现过程java后端vue前端源代码 WebSocketServer调用spring容器注意事项扩展 一、项目实现内容 http://localhost:8080/websocket?uid1 http://localhost:8080/websocket?uid2 http://localhost:8080/websocket?uid3 二、websocket …

crossover软件安装程序怎么安装 Crossover for Mac切换Windows系统 crossover软件怎么样

CrossOver Mac版是专为苹果电脑用户打造的一款实用工具,这款工具主要方便用户在Mac上运行windows系列的应用程序,用户不需要安装虚拟机就可以实现各种应用程序的直接应用,并且可以实现无缝集成,实现跨平台的复制粘贴和文件互通等&…

YOLOv10开源,高效轻量实时端到端目标检测新标准,速度提升46%

前言 实时目标检测在自动驾驶、机器人导航、物体追踪等领域应用广泛,近年来,YOLO 系列模型凭借其高效的性能和实时性,成为了该领域的主流方法。但传统的 YOLO 模型通常采用非极大值抑制 (NMS) 进行后处理,这会增加推理延迟&#…

【经验分享】不同内网服务器之间利用webdav互传文件

目录 0、前言1、授权webdav应用2、下载webdavclient33、替换相关代码 0、前言 最近,我在处理两台服务器间的文件传输问题时遇到了不少难题。这两台服务器并不处于同一内网环境,导致无法通过SFTP进行文件传输。由于这些服务器属于局域网,并且…

高效文件传输攻略:利用局域网共享实现极速数据同步

最近,我换了一台新电脑,面对两个电脑之间文件备份和传输的问题,感到十分头疼。经过多方了解,我发现可以在原电脑上设置共享文件,然后接收方从共享文件中接受即可,这样可以将局域网的带宽拉满,比…

✔️Vue基础+

✔️Vue基础 文章目录 ✔️Vue基础computed methods watchcomputed计算属性methods计算属性computed计算属性 VS methods方法计算属性的完整写法 watch侦听器(监视器)watch侦听器 Vue生命周期Vue生命周期钩子 工程化开发和脚手架脚手架Vue CLI 项目目录介…

Nvidia/算能 +FPGA+AI大算力边缘计算盒子:隧道和矿井绘图设备

RockMass 正在努力打入采矿业和隧道工程利基市场。 这家位于多伦多的初创公司正在利用 NVIDIA AI 开发一款绘图平台,帮助工程师评估矿井和施工中的隧道稳定性。 目前,作为安全预防措施,地质学家和工程师会站在离岩石五米远的地方&#xff0…

Lua移植到标准ANSI C环境

本文目录 1、引言2、环境准备2.1 源码下载2.2 项目构建环境准备 3、项目编译3.1 添加main.c3.2 Kconfig选择模块3.3 项目构建3.4 项目编译 4、运行 文章对应视频教程: 在下方喔 ~~~ 欢迎关注 点击图片或链接访问我的B站主页~~~ lau解释器移植与功能验证 1、引言 本…

01Linux的安装,时区,固定IP的配置

Linux系统的简介与安装 Linux简介 计算机是由硬件和软件所组成 硬件:计算机系统中由电子,机械和光电元件等组成的各种物理装置的总称软件:是用户和计算机硬件之间的接口和桥梁,用户通过软件与计算机进行交流(操作系统) 操作系统作为用户和…

WEB漏洞服务能提供哪些帮助

在数字化浪潮的推动下,Web应用程序已成为企业展示形象、提供服务、与用户进行交互的重要平台。然而,随着技术的飞速发展,Web应用程序中的安全漏洞也日益显现,成为网络安全的重大隐患。这些漏洞一旦被恶意攻击者利用,可…

Java 数据库连接(JDBC)的使用,包括连接数据库、执行SQL语句等

一、简介 Java Database Connectivity(JDBC)是Java应用程序与关系数据库进行交互的一种API。它提供了一组用于访问和操作数据库的标准接口,使开发人员能够使用Java代码执行数据库操作,如查询、插入、更新和删除等。 二、JDBC架构…

gbase 扩容 集群数据同步 主备切换

问题: 问题1磁盘满 1.原本是100G的大小,我们实际还没接入真正业务,昨日空间满了,需要帮忙看下是什么原因导致磁盘满的吗 数据库是每天备份一次,是不是备份的太频繁,还是数据量的问题导致,需要…

[工具探索]富士mini90拍立得使用指南

文章目录 1. 基本功能介绍1.1 相机外观1.2 电池与胶片 2. 设置相机2.1 装入电池2.2 装入胶片 3. 拍摄模式3.1 标准模式3.2 儿童模式3.3 远景模式3.4 双重曝光模式3.5 Bulb(B)模式3.6 **派对模式**3.7 微距模式3.8 **亮度模式**3.9 **定时拍摄模式**3.10 …

Elastic Search(ES)Java 入门实操(2)搜索代码

上篇解释了 ES 的基本概念和分词器。Elastic Search (ES)Java 入门实操(1)下载安装、概念-CSDN博客 Elastic Search(ES)Java 入门实操(3)数据同步-CSDN博客 这篇主要演示 Java 整合…

React Hooks 封装可粘贴图片的输入框组件(wangeditor)

需求是需要一个文本框 但是可以支持右键或者ctrlv粘贴图片,原生js很麻烦,那不如用插件来实现吧~我这里用的wangeditor插件,初次写初次用,可能不太好,但目前是可以达到实现需求的一个效果啦!后面再改进吧~ …

个位为0的数字-第13届蓝桥杯省赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第81讲。 个位为0的数字&am…

标准发布实施 |《新能源电池工业废水处理技术指南磷酸铁锂电池》

T/ACEF 130-2024《新能源电池工业废水处理技术指南磷酸铁锂电池》欢迎各单位引用执行!有课题也可联合立项! 发布日期:2024年02月04日 实施日期:2024年03月01日 主要起草人:刘愿军、孙冬、丁炜鹏、何小芬…

whistle手机抓包

环境:whistle:2.9.59 whistle手机抓包(ios可以抓小程序的包;安卓机不能抓小程序的包,但是小程序的有开发者工具就够用了) 以安卓手机为例(手机跟电脑要连同一个wifi) 1.电脑安装w…

Django项目上线-报错汇总

Django项目上线-报错汇总 下列报错基本都是Python环境相关 pip install 报错 WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available. debian运行pip报错ssl module in Python is not available - z417 - 博…