利用脚本将EXCEl表倒入PowerDesigner中

时间:2022-10-01 17:42:45

1.Excel表格样式

利用脚本将EXCEl表倒入PowerDesigner中

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中

利用脚本将EXCEl表倒入PowerDesigner中

利用脚本将EXCEl表倒入PowerDesigner中的更多相关文章

  1. 利用SQLite&lowbar;Expert实现Excel表转SqLite数据库

    1.保留excel数据中需要的字段,删除无关字段. 2.将excel另存为cvs格式文件.<另存名称如:jizhan.cvs 则导入后表名即为jizhan> 3.看下图,新建数据库,命名为 ...

  2. python脚本从excel表到处数据,生成指定格式的文件

    #coding:gbk #导入处理excel的模块 import xlrd #定义哪些字段须要推断,仅仅支持时间字段 toSureColArray = ['CREATE_TIME','MODIFY_T ...

  3. 【ITOO 1】将List数据导出Excel表

    需求描述:在课表导入的时候,首先给用户提供模板(excel),然后将用户填写好的数据读取到list集合中.再进行判空处赋值处理,以及去重处理.这篇博客,主要介绍读取excel表和导出excel表的方法 ...

  4. (最全最灵活地)利用Jxl工具包实现Excel表的内容读取 、写入(可向已有表中追加数据)

    1.引子 (1)读取 Jxl工具比较强大,可以方便地实现Excel表的读取和写入.另一款工具Poi也具有相似的功能,并且功能更多,运用也相对复杂.Poi读取Excel表内容时,需要先判断其内容格式,如 ...

  5. 【PHP】将EXCEL表中的数据轻松导入Mysql数据表

    在网络上有不较多的方法,在此介绍我已经验证的方法. 方法一.利用EXCEL表本身的功能生成SQL代码 ①.先在“phpmyadmin”中建立数据库与表(数据库:excel,数据表:excel01,字段 ...

  6. PowerDesigner 16&period;5 使用VBScript脚本从Excel导入物理数据模型

    本文使用的数据库类型是Oracle 11g 最近在工作中遇到一个问题:数据的设计以表格的形式保存在Excel文件中.(由于保密原因,我只能看到数据库设计文档,无法访问数据库.=_=!) 其中包括Nam ...

  7. Jmeter----读取excel表中的数据

    Jmeter 读取excel数据使用的方法是使用CSV Data Set Config参数化,之后使用BeanShell Sampler来读取excel表中的数据 第一步.查看所需的接口都要哪些字段和 ...

  8. 将EXCEL表中的数据轻松导入Mysql数据表

    转载自:http://blog.163.com/dielianjun@126/blog/static/164250113201042310181431/ 在网络上有不较多的方法,在此介绍我已经验证的方 ...

  9. 将Excel表结构导入到Powerdesigner

    我们经常会在excel中设计整理表结构,整理完需要导入到Powerdesigner中,可以通过以下脚本来实现快速,具体操作方法: 打开PowerDesigner,新建模型,点击Tools|Execut ...

随机推荐

  1. Laravel - 安装与配置

    有多重途径可以安装Laravel,下面是通过composer安装laravel的方法.Composer 是 PHP 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们.c ...

  2. Jungle Roads&lbrack;HDU1301&rsqb;

    Jungle Roads Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tota ...

  3. OpenStack 云计算基础知识

    OpenStack Docs: Currenthttp://docs.openstack.org/ OpenStack云计算快速入门教程 - OpenStack及其构成简介_服务器应用_Linux公社 ...

  4. C&plus;&plus;内存对齐的理解

    程序编译器对结构的存储的特殊处理确实提高CPU存储变量的速度,但是有时候也带来了一些麻烦,我们也屏蔽掉变量默认的对齐方式,自己可以设定变量的对齐方式. 编译器中提供了#pragma pack(n)来设 ...

  5. tomcat 5&period;5 动态加载类

    转载于:http://www.itxuexiwang.com/a/javadianzishu/tomcat/2016/0225/161.html?1456480735 开发使用的是tomcat5.5. ...

  6. &lbrack;ActionScript3&period;0&rsqb; 深表复制

    function clone(obj:Object):Object{ var byteArray:ByteArray = new ByteArray(); byteArray.writeObject( ...

  7. 做优步有什么旁门左道吗?No,贪小便宜会吃大亏!

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  8. C&num; for循环嵌套

    今天,我主要学习了for循环的嵌套. 第一个部分主要学习了打印直角在不同方向的三角形,求阶乘的和以及打印九九乘法表等. 例:打印直角在左下角的三角形. Console.WriteLine(" ...

  9. 【linux】常用命令集锦&amp&semi;持续更新&period;&period;&period;

    滴:转载引用请注明哦[握爪]:https://www.cnblogs.com/zyrb/p/9709013.html  对深度学习训练及日常work中的常用linux命令进行整理. [一]screen ...

  10. sql随机查询数据语句&lpar;NewID&lpar;&rpar;&comma;Rnd&comma;Rand&lpar;&rpar;&comma;random&lpar;&rpar;&rpar;

    SQL Server: 代码如下 复制代码 Select TOP N * From TABLE Order By NewID() NewID()函数将创建一个 uniqueidentifier 类型的 ...