如何将在Excel中设计的实体对象字段表导入PowerDesigner
来源:互联网 发布:服装搭配软件 编辑:程序博客网 时间:2024/06/05 11:02
今天遇到将Excel中设计的对象字段表转换成MySQL中的表这一问题,我的解决思路是利用PowerDesigner创建PDM模型再转换到sql脚本。这里涉及的到一个比较麻烦的事情是,如何将那么多的字段方便快速的赋给PDM模型实体表?通过参考网络资料,整理了下面的脚本,并给出了详细注释,另外在文章结尾也提供了完成的代码和使用说明文件供下载。
'这个脚本的作用是将Excel模板中Sheet表对应的数据模型通过PowerDesigner的PDM转换成MySQL数据库中的表'使用时可能修改到的地方主要是Excel文档的路径和数据模型列读取赋值部分,如果严格使用提供的Excel模板就不用修改列读取赋值了Option Explicit '强制显式声明模块中的所有变量Dim mdl '声明一个PD模型Set mdl = ActiveModel '设置模型值即为当前活动的模型If (mdl Is Nothing) Then MsgBox ("不存在活动的PD模型")End IfDim HaveExcelDim RQ '声明一个请求 RQ = MsgBox("你的电脑上安装了Excel软件吗 ?", vbYesNo + vbInformation)If RQ = vbYes Then HaveExcel = True Dim x1 '声明一个变量 Set x1 = CreateObject("Excel.Application") '为x1变量赋值一个Excel对象 x1.Workbooks.Open "C:\Users\Administrator\Desktop\templet.xlsx" '用x1打开指定路径Excel文档(默认xlsx文件是在桌面) x1.Workbooks(1).Worksheets("Sheet1").Activate '指定要打开的Sheet表Else HaveExcel = FalseEnd Ifa x1, mdl '调用函数a(x1,md1)'声明子函数a(x1,md1)Sub a(x1, mdl) Dim rwIndex '声明Sheet表的行标Dim table '声明PD模型的表实体Dim sheet '声明一个Sheet对象Dim col '声明表实体的属性列on error Resume Next '指明后面的代码即使出错也要执行完成MsgBox ("开始构造数据表")Set table = mdl.Tables.CreateNew '创建一个表实体Set sheet = x1.Workbooks(1).Worksheets("Sheet1") '为sheet对象赋值table.Name = sheet.Cells(1, 2).Value '指定表的中文名,方便理解。table.Code = sheet.Cells(1, 7).Value '指定表的实体名'指定要遍历的Excel行,第1行是表头,第2行是中文说明,第三行是英文说明,则从第4行开始,默认Sheet表有200行数据For rwIndex = 4 To 200 With sheet '在Excel的Sheet表这个对象上执行下列操作 If .Cells(rwIndex, 2).Value = "" Then '如果该行第2列为空,说明所有字段已经读完了,可以结束了 Exit For End If Set col = table.Columns.CreateNew '创建PD模型表实体的属性列 col.Name = .Cells(rwIndex, 1).Value '指定字段中文名,便于理解 col.Code = .Cells(rwIndex, 2).Value '指定字段名,程序或模型中使用的名字 col.Comment = .Cells(rwIndex, 3).Value '指定字段说明,对字段的详细描述 col.DataType = .Cells(rwIndex, 4).Value '指定字段数据类型 col.Length = .Cells(rwIndex,5).Value '指定字段长度 col.Precision = .Cells(rwIndex,6).Value '指定字段数据精度 If .Cells(rwIndex,7).value="" Or .Cells(rwIndex,7).value="False" Or .Cells(rwIndex,7).value="F" Then col.Primary = False '指定是否主键,true表示为主键 Elseif .Cells(rwIndex,7).value="True" Or .Cells(rwIndex,7).value="T" Then col.Primary = True Else MsgBox("主键标记设置错误") End If If .Cells(rwIndex,8).value="" Or .Cells(rwIndex,8).value="False" Or .Cells(rwIndex,8).value="F" Then col.Primary = False '指定是否外键,true表示为外键 Elseif .Cells(rwIndex,8).value="True" Or .Cells(rwIndex,8).value="T" Then col.Primary = True Else MsgBox("外键标记设置错误") End If If .Cells(rwIndex,9).value="" Or .Cells(rwIndex,9).value="False" Or .Cells(rwIndex,9).value="F" Then col.Primary = False '指定是否非空,true表示为非空 Elseif .Cells(rwIndex,9).value="True" Or .Cells(rwIndex,9).value="T" Then col.Primary = True Else MsgBox("非空标记设置错误") End If End WithNext 'For循环变量的下一个值MsgBox ("数据表构造完成")End Sub
问题解决方案相关代码及文件下载:Excel_PD_Table
阅读全文
0 0
- 如何将在Excel中设计的实体对象字段表导入PowerDesigner
- 将Excel中的某些字段(在数据库中不存在的信息)导入数据库
- 如何将数据库中的表导入到PowerDesigner中
- 如何将数据库中的表导入到PowerDesigner中
- 如何将数据库中的表导入到PowerDesigner中
- 如何将数据库中的表导入到PowerDesigner中
- 如何将数据库中的表导入到PowerDesigner中
- 怎样将Excel中的某一部分字段内容导入到SQL Server 2000的某个表的某些字段中
- 使用vb将excel导入PowerDesigner,生成表结构
- 使用vb将excel导入PowerDesigner,生成表结构
- 使用vb将excel导入PowerDesigner,生成表结构2
- 如何通过PHP将excel的数据导入MySQL中
- 如何通过PHP将excel的数据导入MySQL中
- 如何通过PHP将excel的数据导入MySQL中
- 如何进行数据库,比如ORACLE,SQL SERVER的逆向工程,将数据库导入到PowerDesigner中
- 如何进行数据库,比如ORACLE,SQL SERVER的逆向工程,将数据库导入到PowerDesigner中
- 如何进行数据库,比如ORACLE,SQL SERVER的逆向工程,将数据库导入到PowerDesigner中
- 如何将excel导入数据库中
- pat-a1018. Public Bike Management (30)
- 初见Lambda表达式
- Python小问题总结
- stack
- 错误总结
- 如何将在Excel中设计的实体对象字段表导入PowerDesigner
- CQOI2016 手机号码 数位DP
- css背景图片自适应
- mysql安装及配置
- POJ: Drying(二分)
- C++设计模式:装饰模式
- M进制转N进制(C++)
- MUI框架(1)
- 0036_Valid Sudoku