当前位置: 首页 > news >正文

PowerDesigner导入Excel模板生成数据表

PowerDesigner导入Excel模板生成数据表

1.准备好需要导入的Excel表结构数据,模板内容如下图所示

在这里插入图片描述

2.打开PowerDesigner,新建一个physical data model文件,填入文件名称,选择数据库类型

在这里插入图片描述

3.点击Tools|Execute Commands|Edit/Run Script菜单或按下快捷键Ctrl + Shift + X打开脚本窗口,输入示例VBScript脚本,修改其中的Excel模板路径及工作薄页签,点Run按钮执行即可

在这里插入图片描述

4.VBScript脚本

'******************************************************************************  
'* 所有的表设计都放在一个excel的一个sheet中,每个表中间空一行,表体都有表头说明如下,  
'* 再前面一行是表名和表的说明,分别在A和C列。下面格式直接拷贝到excel中就可以看到,空格是制表符。  
'******************************************************************************    
'                             Excel 格式如下 
'表/字段中文名	表/字段代码			表/字段注释		字段类型		是否主键	是否非空
'班级学生信息表	CLASS_INFO_TABLE	班级学生信息表			
'主键			ID					主键			varchar2(64)	是			是
'姓名			NAME				姓名			varchar2(255)	否			否
'年龄			AGE					年龄			varchar2(64)	否			否
'性别			SEX					性别			varchar2(64)	否			否
'班级名称		CLASS_NAME			班级名称			varchar2(64)	否			否
'学号			NO					学号			varchar2(64)	否			否
'分数			sorce				考试成绩			NUMBER(8,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 "D:\my_study\示例文件\pdm导入Excle文件.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 = 2 To 1000  '指定要遍历的Excel行标  第一行是表头,非表字段信息部分,不读取,所以从第2行开始,表结构有多少行就读取多少行With x1.Workbooks(1).Worksheets("Sheet1")'需要循环的sheet名称  If .Cells(rwIndex, 1).Value = "" Then                            Exit For             End If If .Cells(rwIndex,4).Value = "" And  .Cells(rwIndex,5).Value = ""  Then  set table = mdl.Tables.CreateNew '创建一个表实体  table.Code = .Cells(rwIndex,2).Value'从excel中取得表名称和编码  table.Name = .Cells(rwIndex,1).Value'table.Comment = .Cells(rwIndex,3).Valuecount = count + 1  End If If .Cells(rwIndex,4).Value <>"" Thenset col =table.Columns.CreateNew '创建一列/字段  col.Name = .Cells(rwIndex, 1).Value '指定列name  col.Code = .Cells(rwIndex, 2).Value '指定列code  col.Comment =  .Cells(rwIndex, 3).Value '指定列说明 col.DataType = .Cells(rwIndex, 4).Value '指定列数据类型 			If .Cells(rwIndex, 5).Value = "true" or .Cells(rwIndex, 5).Value = "是" or .Cells(rwIndex, 5).Value = "True" Then'指定主键  col.Primary = true  End If       If .Cells(rwIndex, 6).Value = "true" or .Cells(rwIndex, 6).Value = "是" or .Cells(rwIndex, 6).Value = "True" Then'指定列是否可空 true 为不可空  col.Mandatory = true  End If End If  End With  
Next  MsgBox "生成数据表结构共计 " + CStr(count), vbOK + vbInformation, "表"  
Exit Sub  
End sub

[2024-06-08]

相关文章:

  • 鸿蒙开发接口数据管理:【@ohos.data.rdb (关系型数据库)】
  • Java 请求头加header
  • Kubernetes 二进制安装
  • LeetCode322.零钱兑换
  • 结构体(c++语言)
  • PDF分页处理:技术与实践
  • 千益畅行,共享旅游卡,满足您多样化的同行出行需求
  • Web考试前端等级:深度剖析与实战攻略
  • 搭建python虚拟环境,并在VSCode中使用
  • 让你的TypeScript代码更优雅,这10个特性你需要了解下
  • htb-linux-9-sense
  • Web安全:Web体系架构存在的安全问题和解决方案
  • Debian13将正式切换到基于内存的临时文件系统
  • 中电金信:产教联合共育人才 AFAC2024金融智能创新大赛启动
  • k8s之deployments相关操作
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 2017年终总结、随想
  • ES6之路之模块详解
  • java8-模拟hadoop
  • mysql innodb 索引使用指南
  • React16时代,该用什么姿势写 React ?
  • React的组件模式
  • session共享问题解决方案
  • 动态规划入门(以爬楼梯为例)
  • 理清楚Vue的结构
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 算法系列——算法入门之递归分而治之思想的实现
  • 原生 js 实现移动端 Touch 滑动反弹
  • 中文输入法与React文本输入框的问题与解决方案
  • ​学习一下,什么是预包装食品?​
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • $$$$GB2312-80区位编码表$$$$
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (13):Silverlight 2 数据与通信之WebRequest
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (C11) 泛型表达式
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (八)Spring源码解析:Spring MVC
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (二十三)Flask之高频面试点
  • (规划)24届春招和25届暑假实习路线准备规划
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (三)c52学习之旅-点亮LED灯
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)C#调用WebService 基础
  • (转)用.Net的File控件上传文件的解决方案
  • .chm格式文件如何阅读
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式