pd导入excel生成table的vb脚本。

7 篇文章 0 订阅
3 篇文章 1 订阅

导入的vb脚本如下:

 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\Administrator\Desktop\M\test.xls" 
  x1.Workbooks(1).Worksheets("Sheet1").Activate 
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 
'这里表示从2到1000行
For rwIndex = 2 To 1000 step 1   
    With x1.Workbooks(1).Worksheets("Sheet1")
  'MsgBox "生成数据表结构共计1 ="+CStr(.Cells(2,2).Value ), vbOK + vbInformation, "表" 
   If .Cells(rwIndex, 1).Value = "" Then 
       Exit For 
   End If  
  If .Cells(rwIndex, 5).Value <> "" Then 
    set table = mdl.Tables.CreateNew 
        table.Name = .Cells(rwIndex , 5).Value 
        table.Code = .Cells(rwIndex , 1).Value 
        colName = .Cells(rwIndex, 3).Value 
    set col = table.Columns.CreateNew  
    
   'MsgBox .Cells(rwIndex, 1).Value, vbOK + vbInformation, "列" 
    col.Name = .Cells(rwIndex, 3).Value 
    'MsgBox col.Name, vbOK + vbInformation, "列"
     col.Code = .Cells(rwIndex, 2).Value 
    col.Comment = .Cells(rwIndex,3).Value  
    col.DataType = .Cells(rwIndex, 4).Value 
    
        count = count + 1  
     Else 
    colName = .Cells(rwIndex, 3).Value 
    set col = table.Columns.CreateNew  
    
   'MsgBox .Cells(rwIndex, 1).Value, vbOK + vbInformation, "列" 
    col.Name = .Cells(rwIndex, 3).Value 
    'MsgBox col.Name, vbOK + vbInformation, "列"
     col.Code = .Cells(rwIndex, 2).Value 
    col.Comment = .Cells(rwIndex,3).Value  
    col.DataType = .Cells(rwIndex, 4).Value 
    
   End If 
  End With 
Next 
  
MsgBox "生成数据表结构共计" + CStr(count), vbOK + vbInformation, "表" 
 
Exit Sub 
End sub 

excel的样式如下:



修改及注释后vb脚本如下:

 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")
  'excel文档所在的位置
  x1.Workbooks.Open "C:\Users\Administrator\Desktop\M\test.xls" 
  x1.Workbooks(1).Worksheets("Sheet1").Activate 
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 
'这里表示从2到1000行
For rwIndex = 2 To 1000 step 1   
'读取Sheet1工作表
    With x1.Workbooks(1).Worksheets("Sheet1")
  'MsgBox "生成数据表结构共计1 ="+CStr(.Cells(2,2).Value ), vbOK + vbInformation, "表" 
   If .Cells(rwIndex, 1).Value = "" Then 
       Exit For 
   End If  
  If .Cells(rwIndex, 5).Value <> "" Then 
  '设置表名
    set table = mdl.Tables.CreateNew 
        table.Name = .Cells(rwIndex , 5).Value 
        table.Code = .Cells(rwIndex , 1).Value 
        
  '设置第一行字段
    set col = table.Columns.CreateNew  
    
   'MsgBox .Cells(rwIndex, 1).Value, vbOK + vbInformation, "列" 
   '设置字段Name
    col.Name = .Cells(rwIndex, 3).Value 
    'MsgBox col.Name, vbOK + vbInformation, "列"
    '设置字段Code
    col.Code = .Cells(rwIndex, 2).Value 
    '设置字段Comment
    col.Comment = .Cells(rwIndex,3).Value  
    '设置字段类型
    col.DataType = .Cells(rwIndex, 4).Value 
    
        count = count + 1  
     Else 
     
   '设置其它字段
    set col = table.Columns.CreateNew  
    
   'MsgBox .Cells(rwIndex, 1).Value, vbOK + vbInformation, "列" 
    col.Name = .Cells(rwIndex, 3).Value 
    'MsgBox col.Name, vbOK + vbInformation, "列"
    col.Code = .Cells(rwIndex, 2).Value 
    col.Comment = .Cells(rwIndex,3).Value  
    col.DataType = .Cells(rwIndex, 4).Value 
    
   End If 
  End With 
Next 
  
MsgBox "生成数据表结构共计" + CStr(count), vbOK + vbInformation, "表" 
 
Exit Sub 
End sub 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值