说明:近期做部分表结构设计,在word里设计调整好了,需要整理到PowerDesigner中,但是手工录入太麻烦。

找了个工具(地址:http://www.cnblogs.com/hwaggLee/p/5542078.html),将其做了部分修改和完善,并支持多个表同时导入。

使用方法:

1、整理Excel。文件名为Temp.xlsx,放到D:根盘目录下。每个sheet页是一个表,格式如下:

2、打开PowerDesinger,新建模型

3、打开命令执行功能。

4、将脚本复制到窗口中,点Run,生成PD结构

附:脚本文件

'开始
Option Explicit Dim mdl ' the current model
Set mdl = ActiveModel
If (mdl Is Nothing) Then
MsgBox "There is no Active Model"
End If Dim HaveExcel
Dim RQ
RQ = vbYes 'MsgBox("Is Excel Installed on your machine ?", vbYesNo + vbInformation, "Confirmation")
If RQ = vbYes Then
HaveExcel = True
' Open & Create Excel Document
Dim x1 '
Set x1 = CreateObject("Excel.Application")
x1.Workbooks.Open "D:\Temp.xlsx" '指定 excel文档路径
Else
HaveExcel = False
End If a x1, mdl sub a(x1, mdl)
dim rwIndex
dim tableName
dim colname
dim table
dim col
dim count
dim sheetIndex
on error Resume Next
For sheetIndex = 1 To 200 '指定要遍历的 Sheet
x1.Workbooks(1).Worksheets(sheetIndex).Activate '指定要打开的sheet名称
With x1.Workbooks(1).Worksheets(sheetIndex)
If .Cells(1, 1).Value = "" Then
Exit For
End If
set table = mdl.Tables.CreateNew '创建一个 表实体
table.Name = .Cells(1, 2).Value '指定 表名,如果在 Excel文档里有,也可以 .Cells(rwIndex, 3).Value 这样指定
table.Code = .Cells(1, 4).Value '指定 表名
count = count + 1 For rwIndex = 3 To 1000 '指定要遍历的 Excel行标 由于第2行是列的 表头, 从第3行开始 If .Cells(rwIndex, 1).Value = "" Then
Exit For
End If set col = table.Columns.CreateNew '创建一列/字段
'MsgBox .Cells(rwIndex, 1).Value, vbOK + vbInformation, "列"
If .Cells(rwIndex, 1).Value = "" Then
col.Name = .Cells(rwIndex, 2).Value '指定列名-----如果第1列(Name)为空,则显示第2列的Code
Else
col.Name = .Cells(rwIndex, 1).Value
End If
'MsgBox col.Name, vbOK + vbInformation, "列"
col.Code = .Cells(rwIndex, 2).Value '指定列名-------第2列是Code
col.DataType = .Cells(rwIndex, 3).Value '指定列数据类型-----第3列是类型
col.Comment = .Cells(rwIndex, 5).Value '指定列说明-------第5列是列说明
If .Cells(rwIndex, 4).Value = "否" Then
col.Mandatory = true '指定列是否可空 true 为不可空 ------第4列指定列是否允许为空
End If
If rwIndex = 3 Then
col.Primary = true '指定主键-------第3行是主键列
End If Next
MsgBox "生成数据 表结构共计 " + CStr(count), vbOK + vbInformation, " 表"
End With
Next
Exit Sub
End sub

  说明:

  可进一步完善,将类型和长度分开、增加精度、表说明等等。

最新文章

  1. [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境
  2. 动手实践 Linux VLAN - 每天5分钟玩转 OpenStack(13)
  3. 12,SFDC 管理员篇 - 页面配置
  4. linux笔记:shell编程-正则表达式
  5. 【POJ】3398 Perfect Service
  6. js判断IE6(推荐方法一)
  7. Codeforces Round#310 div2
  8. jquery 直接调用 wcf,面向服务的SOA架构 ( 第三天)
  9. jQuery的9中构造函数
  10. C# List 扩展排序
  11. 转:JMeter--使用代理录制Web性.能测试脚.本
  12. ReactNative学习之Html基本标签使用
  13. spring-session 共享
  14. UCS业务知识介绍
  15. 使用QGIS将文本坐标转换为矢量文件
  16. Activation HDU - 4089(概率dp)
  17. Python3学习之路~2.8 文件操作实现简单的shell sed替换功能
  18. django笔记 - 建站
  19. [android] 手机卫士来电显示号码归属地
  20. Mining Your Own Business UVALive - 5135(点双联通分量)

热门文章

  1. Config非对称加解密
  2. 深度学习(九) 深度学习最全优化方法总结比较(SGD,Momentum,Nesterov Momentum,Adagrad,Adadelta,RMSprop,Adam)
  3. JavaScript与WebAssembly进行比较
  4. [零]java8 函数式编程入门官方文档中文版 java.util.stream 中文版 流处理的相关概念
  5. Python迭代和解析(5):搞懂生成器和yield机制
  6. javascript sort 函数用法
  7. 【.NET Core项目实战-统一认证平台】第七章 网关篇-自定义客户端限流
  8. es6 Symbol类型
  9. 这个月干啥去了?——H5+移动应用实战开发
  10. Windows7 64位环境6sv2.1大气传输模型修改源码添加国产高分卫星GF-1 GF-2光谱响应支持