PowerDesigner使用指令碼批量匯入excel
阿新 • • 發佈:2019-01-27
在PowerDesigner使用指令碼批量匯入excel中記錄的表結構資訊
由於需要通過powerdesigner逆向工程建立一些sybase IQ的表,由於是介面資料,只有excel表,
手動匯入太耗時了(幾十張),所以百度了一下批量匯入execl的方法,發現可以執行vb指令碼來讀excel表格,
從而批量生成表結構圖。
方法:在PowerDesigner中選擇Tools——》Execute Commands——》Edit/Run Scripts
指令碼如下:
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 "excel文件路徑" '指定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 on error Resume Next For 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 With Next MsgBox "生成資料表結構共計 " + CStr(count), vbOK + vbInformation, "表" Exit Sub End sub
--參考zONDA6undg_u3JiECXXla_ttXIIuIl9dDjYVN4NX5TPdRyqLb1eFr7G3QJn8W5yC3K5HeOEooKzAB01JvCJpxZU--uUwtM2r_
Excel 格式: