ivaneeo's blog

          自由的力量,自由的生活。

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            669 Posts :: 0 Stories :: 64 Comments :: 0 Trackbacks
          這個功能只能用powerdesigner 的腳本功能來實現,使用起來也簡單

          打開powerdesigner,shift + ctrl + X 打開腳本窗口

          輸入執行的腳本,點 run 即可。

          簡單的導入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:\11.xls"   '指定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

          set table = mdl.Tables.CreateNew '創建一個表實體
          table.Name = "卡片信息表"    '指定表名,如果在Excel文檔里有,也可以 .Cells(rwIndex, 3).Value 這樣指定
          table.Code = "AM_CARDINFO"  '指定表名
          count = count + 1

          For rwIndex = 2 To 1000   '指定要遍歷的Excel行標  由于第1行是表頭,從第2行開始
                  With x1.Workbooks(1).Worksheets("Sheet1")
                      If .Cells(rwIndex, 1).Value = "" Then
                         Exit For
                      End If

                         set col = table.Columns.CreateNew   '創建一列/字段
                         'MsgBox .Cells(rwIndex, 1).Value, vbOK + vbInformation, "列"
                         If .Cells(rwIndex, 3).Value = "" Then
                            col.Name = .Cells(rwIndex, 1).Value   '指定列名
                         Else 
                            col.Name = .Cells(rwIndex, 3).Value
                         End If
                         'MsgBox col.Name, vbOK + vbInformation, "列"
                         col.Code = .Cells(rwIndex, 1).Value   '指定列名
                         
                         col.DataType = .Cells(rwIndex, 2).Value   '指定列數據類型
                         
                         col.Comment = .Cells(rwIndex, 5).Value  '指定列說明
                         
                         If .Cells(rwIndex, 4).Value = "否" Then
                             col.Mandatory = true        '指定列是否可空  true  為不可空                  
                         End If
                         
                         If rwIndex = 2 Then
                             col.Primary = true    '指定主鍵
                         End If
                  End With
          Next
          MsgBox "生成數據表結構共計 " + CStr(count), vbOK + vbInformation, "表"

          Exit Sub
          End sub


          posted on 2010-12-04 10:45 ivaneeo 閱讀(2743) 評論(3)  編輯  收藏 所屬分類: oralce-為什么這么強大

          Feedback

          # re: powerdesigner 導入Excel文檔 做成 實體表 2010-12-25 16:14 liutianzhong
          對excel表的填寫有何要求沒有?應如何填寫?我轉不成功?  回復  更多評論
            

          # re: powerdesigner 導入Excel文檔 做成 實體表 2012-07-24 10:38 山嶺
          excel格式怎么沒貼出來?  回復  更多評論
            

          主站蜘蛛池模板: 大竹县| 繁峙县| 益阳市| 东莞市| 长垣县| 老河口市| 乌苏市| 巴彦淖尔市| 班戈县| 建德市| 中宁县| 获嘉县| 辽阳县| 长兴县| 开化县| 曲阳县| 义马市| 平遥县| 丰镇市| 遵化市| 稻城县| 宁明县| 杭州市| 行唐县| 垫江县| 浮梁县| 彰武县| 社旗县| 天气| 宜章县| 开鲁县| 汝州市| 陈巴尔虎旗| 新晃| 台安县| 汝南县| 资兴市| 措勤县| 拜城县| 鄯善县| 伽师县|