前言

因为公司要从 oracle 迁移到 mysql,同时也没有关于数据库的文档,同时数据库表太多了,一个一个手动建模,太没有效率了,所以网上查了一下,powerdesigner 使用的 visual basic 语言,可以使用脚本批量导入创建。

如何使用脚本


excel 样式

vbs 脚本

' 第一行是表头
' 第二行开始是列的描述,分别是:表名、表注释、列名、列数据类型、列数据长度、列是否为空、列注释
' Excel的sheet名称统一为Sheet1
'开始
Option ExplicitDim mdl ' the current model
Set mdl = ActiveModel
If (mdl Is Nothing) ThenMsgBox "There is no Active Model"
End IfDim HaveExcel
Dim RQ
RQ = vbYes 'MsgBox("Is  Excel Installed on your machine ?", vbYesNo + vbInformation, "Confirmation")
If RQ = vbYes ThenHaveExcel = True' Open & Create  Excel DocumentDim x1 'Set x1 = CreateObject("Excel.Application")x1.Workbooks.Open "C:\Users\hp\Desktop\sql.xlsx" '指定 excel文档路径x1.Workbooks(1).Worksheets("Sheet1").Activate '指定要打开的sheet名称
ElseHaveExcel = False
End Ifa x1, mdlsub a(x1, mdl)dim rwIndex
dim table
dim tableName
dim colname
dim col
dim dataType
dim tableCommenton error Resume Nextset tableName = ""
set tableComment = ""For rwIndex = 2 To 9713 'With x1.Workbooks(1).Worksheets("Sheet1")If tableName = "" Then' 创建表set table = mdl.Tables.CreateNew '创建一个 表实体tableName = .Cells(rwIndex, 1).Value '表名tableComment = .Cells(rwIndex, 2).ValueIf tableComment = "" Then table.Name=tableName '表名Else table.Name=tableComment '表名End Iftable.Code=.Cells(rwIndex, 1).Value '表标识table.Comment=tableComment '表注释ElseIf tableName = .Cells(rwIndex, 1).Value ThenElseset table = mdl.Tables.CreateNew '创建一个 表实体tableName = .Cells(rwIndex, 1).Value '表名table.Name=.Cells(rwIndex, 1).Value '表名table.Code=.Cells(rwIndex, 1).Value '表标识table.Comment=.Cells(rwIndex, 2).Value '表注释End If' 创建列set col = table.Columns.CreateNew '创建一列/字段If .Cells(rwIndex, 7).Value = "" Thencol.Name = .Cells(rwIndex, 3).Value '指定列名Elsecol.Name = .Cells(rwIndex, 7).Value '指定列名End Ifcol.Code = .Cells(rwIndex, 3).Valuecol.Comment = .Cells(rwIndex, 7).Value '指定列说明dataType = .Cells(rwIndex, 4).Value '指定列数据类型Select Case dataTypeCase "DATE"col.DataType = "datetime"CASE "VARCHAR2"col.DataType = Replace("varchar(%s)","%s", .Cells(rwIndex, 5).Value)CASE "NVARCHAR2"col.DataType = Replace("varchar(%s)","%s", .Cells(rwIndex, 5).Value)CASE "CHAR"col.DataType = Replace("char(%s)","%s", .Cells(rwIndex, 5).Value)CASE "CLOB"col.DataType = "text"CASE "BLOB"col.DataType = "BLOB"CASE "FLOAT"col.DataType = Replace("float(%s)","%s", .Cells(rwIndex, 5).Value)CASE "NUMBER"col.DataType = "bigint"CASE "RAW"col.DataType = Replace("binary(%s)","%s", .Cells(rwIndex, 5).Value)CASE "TIMESTAMP(6)"col.DataType = "timestamp"END SelectIf .Cells(rwIndex, 3).Value = "ID" Thencol.Primary = true '指定列是否主键 true 为主键 '指定列是否可空 true 为不可空  End IfIf .Cells(rwIndex, 6).Value = "Y" Thencol.Mandatory = true '指定列是否主键 true 为主键 End IfEnd With
Next
MsgBox "生成成功"Exit Sub
End sub

powerdesigner 使用excel 批量导入创建表相关推荐

  1. PowerDesigner使用脚本批量导入excel

    在PowerDesigner使用脚本批量导入excel中记录的表结构信息 由于需要通过powerdesigner逆向工程创建一些sybase IQ的表,由于是接口数据,只有excel表, 手动导入太耗 ...

  2. php批量添加excel数据库表,php 把excel批量导入到数据库代码

    php 把excel批量导入到数据库代码 我们是利用了ExcelFileParser这个扩展来处理的哦, Excel数据获取演示 Excel数据获取演示 /** * CopyRight (c) 200 ...

  3. excel批量超链接工作表_在Excel工作表中创建到另一个文档的超链接

    excel批量超链接工作表 Sometimes you might want to share information from other documents in Microsoft Excel. ...

  4. SpringMVC框架通过Excel批量导入数据

    文章目录 SpringMVC框架通过Excel批量导入数据 1.导入需要的jar包 2.配置文件 3.创建Java对象类 4.解析Excel表格数据的工具类 5.前端请求 6.Controller处理 ...

  5. Spring Boot 实现excel 批量导入数据(模板下载 ->数据导入->导入失败表格下载)

    批量导入数据以用户为例[不贴数据库操作代码,都是简单的插入和查询操作自己写] 1 导入依赖 2 批量导入模板下载 3 批量导入数据 准备工作 实现代码 测试接口 4 下载导入失败表格 5 实体类 6 ...

  6. Java实现Excel批量导入数据库

    springboot实现Excel批量导入数据库 前言:项目开发中最容易碰到的需求即将Excel数据批量上传到数据库中存储 -> Java实现,Excel数据表,MySQL数据库,具体步骤如下- ...

  7. excel批量导入数据

    这个功能也是我以前项目中经常用到的,感觉很实用,必须拿来分享下: excel进行批量导入数据,结合struts2+ajax 导入的视图:batchAdd.ftl(视图无关紧要的,可以换成其他任何视图, ...

  8. Springboot Excel批量导入数据

    POI处理Excel <!-- poi处理excel --><dependency><groupId>org.apache.poi</groupId>& ...

  9. excel宏转txt替换强制换行符_三个步骤学会用EXCEL批量导入anki题库

    Anki真的是个好用到不想推荐给朋友的软件,本人最近准备刷个新题库,找了一上午找不到原来教我EXCEL导入anki的网页,为了防止我自己过段时间又忘了应该怎么导入,我写了这个教程,写都写了,就顺手发出 ...

最新文章

  1. C# 中SqlParameter类的使用方法小结
  2. 移动互联网漫谈(4)-移动通信网络
  3. Leetcode 127. 单词接龙 解题思路及C++实现
  4. Java中windows路径转换成linux路径等工具类
  5. 15 sql base line 工作机制
  6. leetcode 566. 重塑矩阵(Java版,坐标转换)
  7. linux系统中如何查看日志 (常用命令2)
  8. ruby array_Array.select! Ruby中的示例方法
  9. zuul zuul2 性能_我们学习如何构建Zuul CI / CD云
  10. carlife android 无线,carlife无线连接流程是什么
  11. 挖一挖C#中那些我们不常用的东西之系列(2)——IsXXX 系列方法
  12. MSN登录问题:Error 80072ee7
  13. HDU2504 又见GCD
  14. nginx针对请求的uri来代理
  15. mtk flashtools工具回读镜像文件system.img
  16. 找出大于200的最小质数
  17. A pretty carpet
  18. 外地新能源汽车迁入北京需要哪些条件?
  19. HDU 4513 吉哥系列故事――完美队形II(Manacher)
  20. C++程序设计图书信息管理系统(页面)

热门文章

  1. (12)stata的基本使用--动态面板理论
  2. javaEE和SE、ME的区别
  3. LInux ugo权限详解[修]
  4. 转好文一篇:杀死我们的东西,一定是光鲜甚至美好的!
  5. ORACLE 索引信息查询
  6. HTC VIVE丨12. VRTK抓取机制——(VR交互机制2-Grab)
  7. 最新版!2020年度长沙市高层次人才分类认定目录来啦!
  8. oracle mpio技术,Windows自带多路径MPIO详解
  9. 如何利用微信个人号打造属于自己“私域流量”?
  10. SDUTOJ4349_补番计划