利用脚本将EXCEl表倒入PowerDesigner中
1.Excel表格样式

2.脚本代码
'******************************************************************************
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 "e:\123.xlsx" '指定excel文档路径
x1.Workbooks(1).Worksheets("Sheet1").Activate '指定要打开的sheet名称
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 abc on error Resume Next
'--------------------------------
'下面是读取excel,添加表实体属性
'--------------------------------
For rwIndex = 1 To 50 '指定要遍历的Excel行标 由于第2行是表头,从第1行开始,看你这个表设计多少行
With x1.Workbooks(1).Worksheets("Sheet1")'需要循环的sheet名称
If .Cells(rwIndex,1).Value <> "" And .Cells(rwIndex,2).Value = "" And .Cells(rwIndex,3).Value <> "" Then'Excel中表头的1列是表名,2空,3是表注释
set table = mdl.Tables.CreateNew '创建一个表实体
table.Code = .Cells(rwIndex,1).Value'从excel中取得表名称和编码
table.Name = .Cells(rwIndex,3).Value'
table.Comment = .Cells(rwIndex,3).Value '指定列说明
count = count + 1
Continue
End If
'If (.Cells(rwIndex,1).Value = "" And .Cells(rwIndex,2).Value = "" And .Cells(rwIndex,3).Value = "") Or (.Cells(rwIndex,1).Value <> "" And .Cells(rwIndex,2).Value = "" And .Cells(rwIndex,3).Value <> "")Then
If .Cells(rwIndex,2).Value = "" or .Cells(rwIndex,1).Value = "序号" Then '第二列为空的都可以忽略
continue '这里忽略空行和表名行、表头行
Else
set col =table.Columns.CreateNew '创建一列/字段 col.Code=.Cells(rwIndex, 2).Value
If .Cells(rwIndex,5).Value ="datetime" Then col.DataType = .Cells(rwIndex, 5).Value '指定列数据类型
ElseIf .Cells(rwIndex,5).Value ="numeric" Then
col.DataType =CStr(.Cells(rwIndex, 5).Value) + "("+ CStr(.Cells(rwIndex, 6).Value)+","+CStr(.Cells(rwIndex, 7).Value)+ ")"
Else
col.DataType =CStr(.Cells(rwIndex, 5).Value) + "("+ CStr(.Cells(rwIndex, 6).Value)+ ")"
End If If.Cells(rwIndex, 4).Value = "√" Then'指定主键
col.Primary =true
End If If.Cells(rwIndex, 8).Value <> "√" Then'指定列是否可空 true 为不可空
col.Mandatory =true
Else
col.Mandatory =false
End If If .Cells(rwIndex, 9).Value <> "" Then '默认值赋值 col.defaultValueDisplayed =.Cells(rwIndex, 9).Value
End If col.Name = .Cells(rwIndex, 10).Value '指定列name
col.Comment = .Cells(rwIndex, 10).Value '指定列说明
End If
End With
Next
MsgBox "生成数据表结构共计 " + CStr(count), vbOK + vbInformation, "表"
Exit Sub
End sub
这俩步就可以将Excel中的内容导入到PowerDesigner中,如果有默认值且为字符串类型的时候,生成的默认值存在''的问题,可采用以下方法解决:

利用脚本将EXCEl表倒入PowerDesigner中的更多相关文章
- 利用SQLite_Expert实现Excel表转SqLite数据库
1.保留excel数据中需要的字段,删除无关字段. 2.将excel另存为cvs格式文件.<另存名称如:jizhan.cvs 则导入后表名即为jizhan> 3.看下图,新建数据库,命名为 ...
- python脚本从excel表到处数据,生成指定格式的文件
#coding:gbk #导入处理excel的模块 import xlrd #定义哪些字段须要推断,仅仅支持时间字段 toSureColArray = ['CREATE_TIME','MODIFY_T ...
- 【ITOO 1】将List数据导出Excel表
需求描述:在课表导入的时候,首先给用户提供模板(excel),然后将用户填写好的数据读取到list集合中.再进行判空处赋值处理,以及去重处理.这篇博客,主要介绍读取excel表和导出excel表的方法 ...
- (最全最灵活地)利用Jxl工具包实现Excel表的内容读取 、写入(可向已有表中追加数据)
1.引子 (1)读取 Jxl工具比较强大,可以方便地实现Excel表的读取和写入.另一款工具Poi也具有相似的功能,并且功能更多,运用也相对复杂.Poi读取Excel表内容时,需要先判断其内容格式,如 ...
- 【PHP】将EXCEL表中的数据轻松导入Mysql数据表
在网络上有不较多的方法,在此介绍我已经验证的方法. 方法一.利用EXCEL表本身的功能生成SQL代码 ①.先在“phpmyadmin”中建立数据库与表(数据库:excel,数据表:excel01,字段 ...
- PowerDesigner 16.5 使用VBScript脚本从Excel导入物理数据模型
本文使用的数据库类型是Oracle 11g 最近在工作中遇到一个问题:数据的设计以表格的形式保存在Excel文件中.(由于保密原因,我只能看到数据库设计文档,无法访问数据库.=_=!) 其中包括Nam ...
- Jmeter----读取excel表中的数据
Jmeter 读取excel数据使用的方法是使用CSV Data Set Config参数化,之后使用BeanShell Sampler来读取excel表中的数据 第一步.查看所需的接口都要哪些字段和 ...
- 将EXCEL表中的数据轻松导入Mysql数据表
转载自:http://blog.163.com/dielianjun@126/blog/static/164250113201042310181431/ 在网络上有不较多的方法,在此介绍我已经验证的方 ...
- 将Excel表结构导入到Powerdesigner
我们经常会在excel中设计整理表结构,整理完需要导入到Powerdesigner中,可以通过以下脚本来实现快速,具体操作方法: 打开PowerDesigner,新建模型,点击Tools|Execut ...
随机推荐
- Selinux安全机制
1.Selinux安全机制简介 Selinux是Google在Android 4.4上正式推出的一套以SELinux为基础于核心的系统安全机制.而SELinux则是由美国NSA(国安局)和一些公司(R ...
- LAMP第三部分php,mysql配置
php配置 1. 配置disable_functiondisable_functions = eval,assert,popen,passthru,escapeshellarg,escapeshell ...
- Python第二十二天 stat模块 os.chmod方法 os.stat方法 pwd grp模块
Python第二十二天 stat模块 os.chmod方法 os.stat方法 pwd grp模块 stat模块描述了os.stat(filename)返回的文件属性列表中各值的意义,根据 ...
- Python文件读写 - 读一个文件所有行,加工后写另一个文件
#Filename: file_read_and_write.py #打开文件,cNames读取所有行,储存在列表中,循环对每一行在起始处加上序号1,2,3,4 with open(r'file/co ...
- ubuntu环境下python虚拟环境的安装
一. 虚拟环境搭建 在开发中安装模块的方法: pip install 模块名称 之前我们安装模块都是直接在物理环境下安装,这种安装方法,后面一次安装的会覆盖掉前面一次安装的.那如果一台机器上面开发多个 ...
- Django__WSGI
WEB应用的本质 : 1. 浏览器发送一个http请求 2. 服务器收到请求,生成一个html文档 3. 服务器把HTML文档作为HTTP响应的body发送给浏览器 4. 浏览器收到http响应,从h ...
- 阿里云ECS搭建SVN配置外网
阿里云ECS搭建SVN后,配置外网启动不了,检查云服务器没发现问题,后来发现是阿里云拦截,需要在阿里云控制台ECS安全组新增如下配置:
- SQL SERVER 常用知识整理
以前写了一些关于sql的文章,包括一些转载的,这里做下整理,方便需要时候使用 一.基础运用 SQL 数据结构操作语句 SQL 时间处理 SQL 常见函数使用 CASE WHEN THEN 小结 二.优 ...
- golang 队列
You have to perform NN operations on the queue. The operations are of following type: E xE x : Enque ...
- AspNet Core 核心 通过依赖注入(注入服务)
说起依赖注入 相信大家已经很熟悉了,这里我在简要的描述一遍, 什么是依赖注入: 我们从字面意义上来解释一下:依赖代表着两个或者多个对象之间存在某些特定的联系:举一个不是很恰当的例子 比如说一度夫妻组成 ...