PowerDesigner使用脚本批量导入excel

来源:互联网 发布:ccs-5.3是什么软件 编辑:程序博客网 时间:2024/06/04 18:12

PowerDesigner使用脚本批量导入excel中记录的表结构信息

由于需要通过powerdesigner逆向工程创建一些sybase IQ的表,由于是接口数据,只有excel表,

手动导入太耗时了(几十张),所以百度了一下批量导入execl的方法,发现可以执行vb脚本来读excel表格,

从而批量生成表结构图。

 

方法:在PowerDesigner中选择Tools——》Execute Commands——》Edit/Run Scripts

 

脚本如下:

Option ExplicitDim mdl ' the current modelSet mdl = ActiveModelIf (mdl Is Nothing) Then   MsgBox "There is no Active Model"End IfDim HaveExcelDim RQRQ = 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 "excel文档路径"   '指定excel文档路径   x1.Workbooks(1).Worksheets("Sheet1").Activate   '指定要打开的sheet名称Else   HaveExcel = FalseEnd Ifa x1, mdlsub a(x1, mdl)dim rwIndex   dim tableNamedim colnamedim tabledim coldim counton error Resume NextFor rwIndex = 2 To 1000   '指定要遍历的Excel行标  由于第1行是表头,从第2行开始        With x1.Workbooks(1).Worksheets("Sheet1")            If .Cells(rwIndex, 1).Value = "" Then '如果遍历到第一列为空,则退出               Exit For            End If            If .Cells(rwIndex, 3).Value = "" Then '如果遍历到第三列为空,则此行为表名               set table = mdl.Tables.CreateNew     '创建表                table.Name = .Cells(rwIndex , 1).Value '指定表名,第一列的值                table.Code = .Cells(rwIndex , 1).Value                 table.Comment = .Cells(rwIndex , 2).Value '指定表注释,第二列的值                count = count + 1              Else               set col = table.Columns.CreateNew   '创建一列/字段               'MsgBox .Cells(rwIndex, 1).Value, vbOK + vbInformation, "列"                              col.Name = .Cells(rwIndex, 1).Value   '指定列名                      'MsgBox col.Name, vbOK + vbInformation, "列"               col.Code = .Cells(rwIndex, 1).Value   '指定列名                                       col.DataType = .Cells(rwIndex, 4).Value '指定列数据类型                            'MsgBox col.DataType, vbOK + vbInformation, "列类型"                              col.Comment = .Cells(rwIndex, 5).Value  '指定列说明            End If              End WithNextMsgBox "生成数据表结构共计 " + CStr(count), vbOK + vbInformation, "表"Exit SubEnd sub

--参考http://wenku.baidu.com/link?url=o5HUjGwbA-zONDA6undg_u3JiECXXla_ttXIIuIl9dDjYVN4NX5TPdRyqLb1eFr7G3QJn8W5yC3K5HeOEooKzAB01JvCJpxZU--uUwtM2r_

 

Excel 格式:




0 0
原创粉丝点击