通过Excel生成PowerDesigner表结构设计

说明:近期做部分表结构设计,在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

  说明:

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

时间: 2024-08-23 22:47:37

通过Excel生成PowerDesigner表结构设计的相关文章

Excel生成建表角本

使用宏生成建表角本: Private Sub CreateFile() Dim Fcreate As Object '建表头 Dim FSO As Object Dim Fopen As Object '追加语句 Dim Dir As Object '建目录 Dim Fcreate_run As Object '总调角本 Set mysheet1 = Workbooks(ThisWorkbook.Name).Sheets(1) 'Sheets1 Set mysheet = Workbooks(T

PowerDesigner生成数据库表和逆向生成表结构(MySQL数据库)

一.Download Connector/ODBC下载ODBC驱动,地址:https://dev.mysql.com/downloads/connector/odbc/, 需要注意:PowerDesigner安装的多少位就下载多少位的,一般是32位,建议下载.msi文件直接安装. 二.安装完成后点击powerdesigner的Database--->Configure Connections...--->添加数据源配置,如下图: 三.PDM模型生成数据库sql文件,点击powerdesigne

Powerdesigner生成数据库表

标签: 杂谈 分类: 数据库技术 工具: Sybase PowerDesigner 15.1 Microsoft SQL Server 2005 第一步概要设计: 打开PowerDesigner软件,设计“概念数据模型”(Conceptual Data Model): 点击workspace 右键--->New—>Conceptual Data Model, 弹出如下界面: 设计表.表结构: 在设计属性(字段)的时候,三个字母(M.P.D)分别表示: M:是否为空:(√表示不允许为空) P:是

从PowerDesigner表字段的Name到EF实体类属性的Display Name(根据PowerDesigner生成EF实体类中文注释和验证元数据)

第一步:将PowerDesigner表字段的中文Name填入Comment中:工具-Execute Commands-Edit/Run Script... '****************************************************************************** '* File: name2comment.vbs '* Title: Name to Comment Conversion '* Model: Physical Data Model

C# EPPlus导出EXCEL,并生成Chart表

一  在negut添加EPPlus.dll库文件. 之前有写过直接只用Microsoft.Office.Interop.Excel 导出EXCEL,并生成Chart表,非常耗时,所以找了个EPPlus控件. 二 代码部分 System.Data.DataTable dt = new System.Data.DataTable(); dt.Columns.Add("序号", typeof(int)); dt.Columns.Add("数据1", typeof(int)

表结构设计器(EZDML)1.98版发布

表结构设计器(EZDML)是一个免费的数据库建表的小软件,可快速的进行数据库表结构设计,建立数据模型,能迅速生成代码模板.简单界面和字典文档,支持脚本编程. 新版本大概有以下改进: 1.修复了部分BUG: 2.导出文件支持WORD和HTML(模型图上右键导出,默认导出EXCEL,可选择文件类型为WORD和HTML): 3.支持为每个表设置不同的背景颜色(模型图上选表右键设置实体颜色): 4.表属性的生成页支持特殊复制,可将生成结果复制为C.JAVA.DELPHI.PL/SQL等代码字符串:

表结构设计器(EZDML)1.98版公布

表结构设计器(EZDML)是一个免费的数据库建表的小软件,可高速的进行数据库表结构设计.建立数据模型,能迅速生成代码模板.简单界面和字典文档,支持脚本编程. 新版本号大概有下面改进: 1.修复了部分BUG. 2.导出文件支持WORD和HTML(模型图上右键导出.默认导出EXCEL.可选择文件类型为WORD和HTML): 3.支持为每一个表设置不同的背景颜色(模型图上选表右键设置实体颜色): 4.表属性的生成页支持特殊复制,可将生成结果复制为C.JAVA.DELPHI.PL/SQL等代码字符串

如何优雅的进行表结构设计

作者:仁风H链接:https://zhuanlan.zhihu.com/p/20785905来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 数据库表结构设计作为后端软件开发不可或缺的一环,是每个后端工程师都会经历的过程.笔者也多次经历过这样的过程,也尝试过多种不同的设计方案,也从一些优秀的框架中学到不少,但并没有发现相关的文章对其进行总结.所以本文尝试把笔者看到的.学到的总结下来,希望对阅读本文的读者有所启发. 表结构设计主要有两个目的,一是让表结构更加的更具有表

浅谈数据库用户表结构设计,第三方登录

说起用户表,大概是每个应用/网站立项动工(码农们)考虑的第一件事情.用户表结构的设计,算是整个后台架构的基石.如果基石不稳,待到后面需求跟进了发现不能应付,回过头来反复修改用户表,要大大小小作改动的地方也不少.与其如此,不妨设计用户表之初就考虑可拓展性,争取不需要太多额外代价的情况下一步到位. 先前设计: id username password 用户名加上密码,解决简单需求,留个id作为其他表的外键.当然,那时候密码还可能是明文存储,好点的知道md5. 后来呢,随着业务需求的拓展,要加个用户状