用VB脚本批到导入字段到PowerDesigner
在PowerDesigner使用脚本批量导入excel中记录的表结构信息,由于需要通过powerdesigner逆向工程创建一些sybase IQ的表,由于是接口数据,只有excel表,手动导入太耗时了(几十张),所以百度了一下批量导入execl的方法,发现可以执行vb脚本来读excel表格,从而批量生成表结构图。
这是EXCEL格式:
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:\1.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 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