EXCEL表字段导入powerdesigner

通过VB脚本实现:

避免了从excel一个一个粘的低效率操作,每个sheet页就是一张表,可同时导入多个sheet页。

更改excel格式

  1. 每个sheet页A1是表名中文,B1是表名英文。
  2. A列是中文说明字段,B列是英文字段,C列是字段类型。
  3. 其他sheet页同理。
    如图

编写脚本

'导入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 "C:\Users\asus\Desktop\ttt3.xls"    '指定excel文档路径
Else 
   HaveExcel = False 
End If  

a x1, mdl  

Sub a(x1, mdl) 
dim rwIndex 
dim tableName 
dim colname 
dim table 
dim col 
dim count  
dim sheetIndex 

For sheetIndex = 1 To x1.Workbooks(1).Sheets.Count '指定要遍历的 Sheet
	x1.Workbooks(1).Worksheets(sheetIndex).Activate '指定要打开的sheet名称
	With x1.Workbooks(1).Worksheets(sheetIndex)
	For rwIndex = 1 To 200 step 1 '指定要遍历的Excel行标           
		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 , 2).Value
		   table.Comment = .Cells(rwIndex , 1).Value                   
		   count = count + 1             
		Else 
		   'colName = .Cells(rwIndex, 1).Value               
		   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, 2).Value '指定列code
								
		   col.Comment = .Cells(rwIndex,1).Value '指定列说明    
					   
		   col.DataType = .Cells(rwIndex, 3).Value '指定列数据类型
		   
		   If .Cells(rwIndex, 4).Value = "否" Then
			  col.Mandatory = true'指定列是否可空,true为不可空                  
		   End If
		   
		   If rwIndex = 2 Then
			  col.Primary = true'指定主键
		   End If
		End If        
	Next
	End With 
Next

MsgBox "生成数据表结构共计" + CStr(count), vbOK + vbInformation, "张表"  

Exit Sub 
End Sub

*注意修改文件路径

运行脚本

点击需要导入的物理模型,按下Ctrl+shift+x 粘贴进去 RUN,最后提示导入成功几张表

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值