Powerdesigner 导出Excel格式数据字典 导出Excel格式文件
版权声明:本文为博主原创文章,转载请注明出处;
网上我也看到了很多的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格式文件的更多相关文章
- php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
而关于php的也有,但是大多都是用phpExcel导出的方法或者spreadsheet等类或者控件之类的导出方法,而我所在维护的系统却用很简单的方法,如下,网上很少有讲如何设置要导出数据的EXcel格 ...
- asp.net导出excel-一行代码实现excel、xml、pdf、word、html、csv等7种格式文件导出功能而且美观-SNF快速开发平台
分享: 腾讯微博 新浪微博 搜狐微博 网易微博 腾讯朋友 百度贴吧 豆瓣 QQ好友 人人网 作者:王春天 原文地址:http://www.cnblogs.com/spring_ ...
- 利用freemarker导出页面格式复杂的excel
刚开始大家可能会利用poi生成简单的excel,但是遇到需要生成复杂的excel,poi导出excel就比较困难,这时候可以利用freemarker来渲染实现实现生成复杂的excel, 首先,将exc ...
- Excel导出时设置单元格的格式为文本
问题: 用excel导出数据时,如何设置单元格格式的数字分类为"文本",默认是"常规"? 比如:导出编码0235A089,在Excel查看默认显示的是没有前面的 ...
- C#导出Excel,并设置简单格式
protected void ExportExcel(DataTable dt) { string fileName = “FileName”; Microsoft.Office.Interop.Ex ...
- PowerDesigner数据库设计PDM基于Excel的导入导出总结
经常用到pdm来管理代码,一两张表,手写一下还凑合,一旦表多了,就慌了.于是,开始学习用vbs进行Excel的来快速导入导出操作PDM就变得很紧急了,搜罗了网络上的很多vbs脚本,各有各的优点,但对于 ...
- C# Excel导入、导出【源码下载】
本篇主要介绍C#的Excel导入.导出. 目录 1. 介绍:描述第三方类库NPOI以及Excel结构 2. Excel导入:介绍C#如何调用NPOI进行Excel导入,包含:流程图.NOPI以及C#代 ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入
系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...
- ASP.NET使用NPOI加载Excel模板并导出下载
1.为什么要使用NPOI导出Excel? 一.解决传统操作Excel遇到的问题: 如果是.NET,需要在服务器端装Office,且及时更新它,以防漏洞,还需要设定权限允许.NET访问COM+,如果在导 ...
随机推荐
- CentOS 7.0系统安装配置图解教程
转自:http://www.osyunwei.com/archives/7829.html 操作系统:CentOS 7.0 64位 IP地址:192.168.21.128 网关:192.168.21. ...
- 一款灵活好用的日历控件Kalendae
Kalendae是一款纯js不依赖任何js库的日历控件,可以轻松实现显示月份数量,当前选中多个日期,并可以按照周等你想要的格式去定制选中项. 下载地址:GitHub/Kalendae 第一步:Kale ...
- [dts]Device Tree格式解析
转自:http://blog.csdn.net/airk000/article/details/21345159 目录: 1. 作用 2. 基本数据格式 3. 一些基本概念 4. 工作方式 a. 地址 ...
- C#中abstract和virtual区别
在C#的学习中,容易混淆virtual方法和abstract方法的使用,现在来讨论一下二者的区别.二者都牵涉到在派生类中与override的配合使用. 一.Virtual方法(虚方法) virtual ...
- javascript 异步编程-setTimeout
javascript的执行引擎是单线程的,正常情况下是同步编程的模式,即是程序按照代码的顺序从上到下依次顺序执行.只要有一个任务耗时很长,后面的任务都必须排队等着,会拖延整个程序的执行.常见的浏览器无 ...
- 欧洲用户放弃Android转投iOS原因大起底
据报道,近期在欧洲,有32.4%的新ios设备iPhone用户之前使用的是Android设备.那么为什么欧洲会有这么多Android用户会纷纷抛弃原有操作系统平台而转投iPhone呢? ios设备的同 ...
- [Android NDK/JNI-1A]-开发环境搭建
NDK简介 NDK能干什么:NDK使得在android中,java可以调用C 函数库. 1.Android平台从诞生起,就已经支持C.C++开发.众所周知,Android的SDK基于Java实现,这意 ...
- ERP_基于Oracle SOA的企业服务总线整合
2015-01-01 Created By BaoXinjian
- PLSQL_Oracle Object所有数据库对象类型汇总和简解(概念)
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE /* Style Definitions */ table.MsoNormalTable ...
- 转-Android客户端和服务端如何使用Token和Session
http://www.software8.co/wzjs/yidongkaifa/6407.html 对于初学者来说,对Token和Session的使用难免会限于困境,开发过程中知道有这个东西,但却不 ...