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]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/850079.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Day45 代码随想录打卡|二叉树篇---路径总和

题目&#xff08;leecode T112&#xff09;&#xff1a; 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;…

Redis-sentinel(哨兵模式)的搭建步骤及相关知识

1、什么是redis-sentinel&#xff0c;和redis主从复制相比&#xff0c;它具有什么优势 1.1、redis主从复制 Redis主从复制是一种用于数据冗余和可伸缩性的机制&#xff0c;它将一台Redis服务器的数据复制到其他Redis服务器。在这种模式下&#xff0c;数据会实时地从一个主节点…

Polar Web【中等】反序列化

Polar Web【中等】反序列化 Contents Polar Web【中等】反序列化思路&探索EXPPHP生成PayloadGET传递参数 运行&总结 思路&探索 一个经典的反序列化问题&#xff0c;本文采用PHP代码辅助生成序列字符串的方式生成 Payload 来进行手动渗透。 打开站点&#xff0c;分析…

SpringBoot整合SpringSecurit(二)通过token进行访问

在文章&#xff1a;SpringBoot整合SpringSecurit&#xff08;一&#xff09;实现ajax的登录、退出、权限校验-CSDN博客 里面&#xff0c;使用的session的方式进行保存用户信息的&#xff0c;这一篇文章就是使用token的方式。 在其上进行的改造&#xff0c;可以先看SpringBoot…

力扣每日一题 6/4

3067.在带权树网络中统计可连接服务器对数目[中等] 题目&#xff1a; 给你一棵无根带权树&#xff0c;树中总共有 n 个节点&#xff0c;分别表示 n 个服务器&#xff0c;服务器从 0 到 n - 1 编号。同时给你一个数组 edges &#xff0c;其中 edges[i] [ai, bi, weighti] 表示…

EKF在LiFePO4电池SOC估算中不好用?一问带你破解EKF应用难题

磷酸铁锂电池因为平台区的存在&#xff0c;导致使用戴维南模型EKF的方法时&#xff0c;无法准确进行SOC准确预估。所以最近搜索了大量关于磷酸铁锂电池SOC预估的论文、期刊&#xff0c;但我被海量忽略客观事实、仅为了毕业的硕士论文给震惊到了。很多论文为了掩饰平台区的存在&…

Spark的开发环境配置

1. 介绍 这里主要记录一下&#xff0c;我们常用的maven配置&#xff0c;方便后期开发配置环境&#xff0c;避免每次都从零开始配置工程。 2. 工程目录 3. pom的配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven…

12c rac dg开启日志应用报错 ora-00313 ora-00312 ora-17503 ora-15012处理

错误 当备库开启日志应用后看到告警日志报大量ora-00313\ora-00312\ora-17503等错误 处理方法 SQL> alter database clear unarchived logfile group 1; alter database clear unarchived logfile group 1 * ERROR at line 1: ORA-01156: recovery or flashback in pro…

存在d盘里的数据突然没有了?别担心,恢复方案在此

在数字化时代&#xff0c;数据存储的重要性不言而喻。然而&#xff0c;有时候我们会遭遇一些意想不到的困扰&#xff0c;比如存储在D盘的数据突然消失。这不仅可能导致重要文件的丢失&#xff0c;还可能影响我们的工作和生活。本文将探讨D盘数据消失的可能原因&#xff0c;提供…

9行超强代码用Python工具快速获取放假日期

9行超强代码用Python工具快速获取放假日期 在很多场景下,我们需要获知国内具体的节假日安排情况,而国内每一年具体的放假安排以及调休情况,都依赖于国务院发布的具体公告,如果不想自己手动整理相关数据的话,我们可以用Python来快速获取最新的放假日期. 可以通过调用公开的 API…

Kubernetes 基础架构最佳实践:从架构设计到平台自动化

本文探讨了如何将DigitalOcean Kubernetes (DOKS)应用于生产环境&#xff0c;并提供实现生产准备&#xff08;production readiness&#xff09;的指导。 规划您的基础架构 Kubernetes 基础架构的规划至关重要&#xff0c;因为它为稳定且可扩展的应用部署平台奠定了基础。通过适…

c++编译器在什么情况下会提供类的默认构造函数等,与析构函数

我们都知道&#xff0c;在 c 里&#xff0c;编写的简单类&#xff0c;若没有自己编写构造析构函数与 copy 构造函数 与 赋值运算符函数&#xff0c;那么编译器会提供这些函数&#xff0c;并实现简单的语义&#xff0c;比如成员赋值。看 源码时&#xff0c;出现了下图类似的情形…

Elasticsearch 认证模拟题 - 14

一、题目 在集群中输入以下指令&#xff1a; PUT phones/_doc/1 {"brand":"Samsumg","model":"Galaxy S9","features":[{"type":"os", "value":"Android"},{"type":&q…

2024年6月8日 每周新增游戏

中医百科中药: 中医百科中药是一款非常强大的中药知识科普软件&#xff0c;该应用提供500多味中草药的文献资料&#xff0c;强大的搜索功能可根据功效、特点和关键词来快速查找中药&#xff0c;而且每味中药的图片、功效、主治、炮制方法等百科知识&#xff0c;可以很好的帮助你…

关于科技的总结与思考

文章目录 互联网时代有趣的数字数据驱动大数据的两个特性数据保护互联网免费模式的再探讨平台互联网的意义人工智能伦理的思考语言理性人梅特卡夫定律冲浪的神奇之处AR的恐怖之处叙词表、受控词表和大众分类法六度/十九度的解读知识图谱是真正的仿生智能幂次法则和优先连接现代…

选择排序(直接选择排序与堆排序)----数据结构-排序②

1、选择排序 1.1 基本思想 每一次从待排序的数据元素中选出最小&#xff08;或最大&#xff09;的一个元素&#xff0c;放在序列的起始位置&#xff0c;直到全部待排序的数据元素排完就停止 。 1.2 直接选择排序 排序思想&#xff1a; ①在元素集合array[i]--array[n-1]中选择…

C++三大特性之多态

1.多态 1.1多态的概念 在面向对象方法中一般是这样表述多态性的:向不同的对象发送同一个消息&#xff0c;不同的对象在接收时会产生不同的行为(即方法)也就是说&#xff0c;每个对象可以用自己的方式去响应共同的消息。所谓消息&#xff0c;就是调用函数&#xff0c;不同的行…

【JavaSE】面向对象---多态

前言 本篇以Java初学者视角写下&#xff0c;难免有不足&#xff0c;或者术语不严谨之处。如有错误&#xff0c;欢迎评论区指正。本篇说明多态相关的知识。若本文无法解决您的问题&#xff0c;可以去最下方的参考文献出&#xff0c;找出想要的答案。 多态概念 多态&#xff08…

【小白专用】C# Task 类异步操作-浅谈

注解 Task类表示不返回值并且通常以异步方式执行的单个操作。 Task 对象是在 .NET Framework 4 中首次引入的 基于任务的异步模式 的中心组件之一。 由于对象执行的工作 Task 通常在线程池线程上异步执行&#xff0c;而不是在主应用程序线程上同步执行&#xff0c;因此可以使用…

【上篇】从 YOLOv1 到 YOLOv8 的 YOLO 物体检测模型历史

YOLO 型号之所以闻名遐迩,主要有两个原因:其速度和准确性令人印象深刻,而且能够快速、可靠地检测图像中的物体。 在本文中,我将与大家分享我在阅读一篇长达 30 页的综合性论文时获得的见解,该论文深入探讨了 YOLO 模型的进步。 这篇评论全面概述了 YOLO 框架的演变过程,…