版权声明:本文为博主原创文章,转载请注明出处;

网上我也看到了很多的Powerdesigner 导出方法,因为Powerdesigner 提供了部分VBA功能,所以让我用代码导出Excel格式文件得以实现;

先看下效果图:

1.首先这个是PowerDesign待导出的文件

2.执行脚本后导出的Excel截图

3.后期规划导出效果图(因为支持了VBA,所以都是可以实现的):

一切以代码为主,处理思路是,先读取所有的Tables 循环遍历,得到单表对象,然后就可以拿到相关属性了,字段名,code,字段类型等,当然PowerDesign请按照官方格式填满哦

看代码哈

'******************************************************************************
'* 我的淘宝店: 52sunan.taobao.com
'* 我的网站: www.52sunan.com
'* Created:
'* Version: 1.0
'******************************************************************************
Option Explicit
Dim rowsNum
rowsNum = Dim Model
Set Model = ActiveModel
If (Model Is Nothing) Or (Not Model.IsKindOf(PdPDM.cls_Model)) Then
Debug.print "null"
Else
' Get the tables collection
'创建EXCEL APP
dim beginrow
DIM EXCEL, SHEET
set EXCEL = CREATEOBJECT("Excel.Application")
EXCEL.workbooks.add '添加工作表
SET sheet = EXCEL.workbooks().sheets()
sheet.name ="数据字典" sheet.Range(sheet.cells(, ),sheet.cells(, )).Merge
sheet.cells(, ) ="淘宝服装店地址:http://52sunan.taobao.com"
sheet.Range(sheet.cells(, ),sheet.cells(, )).Interior.Color=rgb(,,) rowsNum=
beginrow = rowsNum+ Dim tab
For Each tab In Model.tables
TableLoop tab,SHEET
Next EXCEL.visible = true
'设置列宽和自动换行
sheet.Columns().ColumnWidth =
sheet.Columns().ColumnWidth =
sheet.Columns().ColumnWidth =
sheet.Columns().ColumnWidth =
sheet.Columns().ColumnWidth = sheet.Columns("C:C").EntireColumn.AutoFit
sheet.Columns("i:i").EntireColumn.AutoFit
End If Sub TableLoop(tab, sheet)
If IsObject(tab) Then
Dim rangFlag
rowsNum = rowsNum + sheet.cells(rowsNum, ) = "表名"
sheet.Range(sheet.cells(rowsNum, ),sheet.cells(rowsNum, )).Merge
sheet.cells(rowsNum, )=tab.code
sheet.Range(sheet.cells(rowsNum, ),sheet.cells(rowsNum, )).Borders.LineStyle = ""
sheet.Range(sheet.cells(rowsNum, ),sheet.cells(rowsNum, )).Interior.Color=rgb(,,)
sheet.Range(sheet.cells(rowsNum, ),sheet.cells(rowsNum, )).Borders.Weight ="" rowsNum = rowsNum +
sheet.cells(rowsNum, ) = "中文名"
sheet.cells(rowsNum, ) = "字段名"
sheet.cells(rowsNum, ) = "类型"
sheet.cells(rowsNum, ) = "长度"
sheet.cells(rowsNum, ) = "主键"
sheet.cells(rowsNum, ) = "索引"
sheet.cells(rowsNum, ) = "不可空"
sheet.cells(rowsNum, ) = "默认值"
sheet.cells(rowsNum, ) = "说明"
sheet.Range(sheet.cells(rowsNum,),sheet.cells(rowsNum,)).Interior.Color=rgb(,,) Dim col ' running column
Dim colsNum
colsNum =
for each col in tab.columns
rowsNum = rowsNum +
colsNum = colsNum +
sheet.cells(rowsNum, ) = col.name
sheet.cells(rowsNum, ) = col.code
sheet.cells(rowsNum, ) = col.datatype
sheet.cells(rowsNum, ) = IIF(col.Length<>,col.Length,"")
sheet.cells(rowsNum, ) = IIF(col.Primary,"√","")
sheet.cells(rowsNum, ) = IIF(col.Primary,"√","")
sheet.cells(rowsNum, ) = IIF(col.Mandatory,"√","")
sheet.cells(rowsNum, ) = "无"
sheet.cells(rowsNum, ) = col.comment
next '设置边框
DIM RanagBorder
SET RanagBorder =sheet.Range(sheet.cells(rowsNum-colsNum,),sheet.cells(rowsNum,))
RanagBorder.Borders.LineStyle = ""
'RaneBorderFun RanagBorder rowsNum = rowsNum + End If
End Sub function IIF(flg,tstr,fstr)
if flg then
IIF= tstr
else
IIF= fstr
end if
End function

http://www.52sunan.com 我平时搞的一个小网页

执行方法:Tools -> Execute COmmands -> Edit/Run Script 或者用快捷键也可以:ctr+shift+X

里面有一个小问题,我还没能获取到字段的默认值属性,用Default结果是关键字 使用不了,我正在研究中,向着最终文档方向发展,希望大家多多支持与交流~

这里的技术主要是VBA,只要可以拿到VBA的地方就可以很容易操作Excel了,而Excel作为存档文件的一个重要文件格式,平时偶尔会遇到整理数据字典,和其他公司联协等,所以构建一些良好的文档还是很必要的。

学好VBA,发现Excel 又变得继续强大强大了。。。

以上涉及到的资料请见附件:附件PowerDesignToExcelFile

Powerdesigner 导出Excel格式数据字典 导出Excel格式文件的更多相关文章

  1. php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法

    而关于php的也有,但是大多都是用phpExcel导出的方法或者spreadsheet等类或者控件之类的导出方法,而我所在维护的系统却用很简单的方法,如下,网上很少有讲如何设置要导出数据的EXcel格 ...

  2. asp.net导出excel-一行代码实现excel、xml、pdf、word、html、csv等7种格式文件导出功能而且美观-SNF快速开发平台

    分享: 腾讯微博  新浪微博   搜狐微博   网易微博  腾讯朋友  百度贴吧  豆瓣   QQ好友  人人网 作者:王春天  原文地址:http://www.cnblogs.com/spring_ ...

  3. 利用freemarker导出页面格式复杂的excel

    刚开始大家可能会利用poi生成简单的excel,但是遇到需要生成复杂的excel,poi导出excel就比较困难,这时候可以利用freemarker来渲染实现实现生成复杂的excel, 首先,将exc ...

  4. Excel导出时设置单元格的格式为文本

    问题: 用excel导出数据时,如何设置单元格格式的数字分类为"文本",默认是"常规"? 比如:导出编码0235A089,在Excel查看默认显示的是没有前面的 ...

  5. C#导出Excel,并设置简单格式

    protected void ExportExcel(DataTable dt) { string fileName = “FileName”; Microsoft.Office.Interop.Ex ...

  6. PowerDesigner数据库设计PDM基于Excel的导入导出总结

    经常用到pdm来管理代码,一两张表,手写一下还凑合,一旦表多了,就慌了.于是,开始学习用vbs进行Excel的来快速导入导出操作PDM就变得很紧急了,搜罗了网络上的很多vbs脚本,各有各的优点,但对于 ...

  7. C# Excel导入、导出【源码下载】

    本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...

  8. ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入

    系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...

  9. ASP.NET使用NPOI加载Excel模板并导出下载

    1.为什么要使用NPOI导出Excel? 一.解决传统操作Excel遇到的问题: 如果是.NET,需要在服务器端装Office,且及时更新它,以防漏洞,还需要设定权限允许.NET访问COM+,如果在导 ...

随机推荐

  1. Android外派(安卓外派) — 长年提供安卓开发工程师外派业务(可签合同)

    北京动点飞扬长年提供安卓工程师外派业务. 平均技术情况如下: 1.2~3年以上Android平台开发经验2.熟练掌握java技术,熟悉面向对象编程设计3.熟悉Android应用开发框架及Activit ...

  2. EXECUTE 后的事务计数指示 BEGIN 和 COMMIT 语句的数目不匹配

    代码中的事务包含了存储过程中的事务.

  3. MySQL加载并执行SQL脚本文件

    第一种方法: 命令行下(未连接数据库) ,输入 mysql -h localhost -u root -p123456 < C:\db.sql 第二种方法: 命令行下(已连接数据库,此时的提示符 ...

  4. LVM---动态调整磁盘容量

    LVM:logical volume manager(逻辑卷管理):LVM屏蔽了底层磁盘布局,方便于动态调整磁盘容量. 一.创建逻辑卷的步骤: 1)通过fdisk 工具将磁盘转换为linux分区 2) ...

  5. Java的最大优势还是跨平台么?

    之前码农界有码农说Java的最大优势是跨平台,真的是这样么?其实当时网络没这么火爆的时候,确实是这样的,但现在这已然不是了. 跨平台还是Java的最大优势么? 有跨平台需求的仅仅是客户端应用,而不是服 ...

  6. UVA116 单向 DSP(多段图最短路)

    单向 DSP [题目链接]单向 DSP [题目类型]dp &题解: 紫书P271 这块的字典序排序我觉得挺厉害的,每次都把那3步sort一下,之后if (v< d[i][j]) 这块的小 ...

  7. Calculations are rather interesting

    Calculations are rather interesting, especially when some thoughts are involved therein.

  8. Laravel 部署安装到虚拟主机的方法(折腾了一周,终于成功部署,原来是虚拟机不加载.env,谢谢莫回首http://lxl520.com/index.php/archives/88/!)

      作者:莫回首链接:https://www.zhihu.com/question/35497879/answer/111241182来源:知乎著作权归作者所有,转载请联系作者获得授权. 序 lara ...

  9. mac下使用github

    提起github相信大家都不会陌生,在这里就不再赘述了.作为开源代码库以及版本控制系统,使用好了确实会非常受益,再说的势利点,你找工作时给面试官说你经常维护自己的技术博客和github,相信你给他的印 ...

  10. shell+Jenkins+jmeter集成

    参考http://www.cnblogs.com/ceshi2016/p/6025641.html 中除ant相关内容,shell替代ant循环执行jmeter脚本和将jtl转换为html job n ...