zoukankan      html  css  js  c++  java
  • 通过excle的内容生成pdm

    pdm其实个人感觉修改起来比较费时间,所以一直想用excle来管理,当然写法不止一种,这个是我的一个老师教我的,Excle按这种规格写就可以:

    表英文名 表中文名 列名 列中文名 列注释 数据类型 主键 是否为空 是否自增
    t_achvmng 业绩归属信息 nodeCode 节点编码 varchar(5) Y NO
    t_achvmng 业绩归属信息 nodeDetailCode 节点详细编码 varchar(5) Y NO
    t_achvmng 业绩归属信息 modifydate 最后一次修改日期 date NO
    t_achvmng 业绩归属信息 modifytime 最后一次修改时间 varchar(8) NO
    t_achvmng_track 轨迹业绩归属信息 achvmng_id 序号 int(11) Y NO
    t_achvmng_track 轨迹业绩归属信息 nodeCode 节点编码 varchar(5) Y NO

    以下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
    Dim x1sApp,xlsWorkBook,xlsSheet
    RQ = vbYes 'MsgBox("Is Excel Installed on your machine ?", vbYesNo + vbInformation, "Confirmation")
    If RQ = vbYes Then
        HaveExcel = True
        ' Open & Create Excel Document
    
        Set x1sApp = CreateObject("Excel.Application")
        set xlsWorkBook = x1sApp.Workbooks.Open("E:1.xlsx")   '指定excel文档路径
        set xlsSheet = x1sApp.Workbooks(1).Worksheets("sheet1")   '指定要打开的sheet名称
    Else
        HaveExcel = False
    End If
    
    a x1sApp, mdl,x1sApp,xlsWorkBook,xlsSheet
    
    sub a(x1, mdl,x1sApp,xlsWorkBook,xlsSheet)
    
        dim rwIndex
        dim tableName
        dim colname
        dim table
        dim col
        dim count
        dim rowCount
        tableName = ""
        rowCount = xlsSheet.usedRange.Rows.Count
    
        on error Resume Next
    
        For rwIndex = 2 To rowCount   '指定要遍历的Excel行标  由于第1行是表头,从第2行开始
            With xlsSheet
                If .Cells(rwIndex, 2).Value = "" Then '如果遍历到第2列为空,则退出
                    Exit For
                End If
                If tableName <> .Cells(rwIndex,2) Then '如果表名不同,则表示新建表
                    set table = mdl.Tables.CreateNew     '创建表
                    table.Name = lcase(.Cells(rwIndex , 3).Value) '指定表名,第2列的值
                    table.Code = .Cells(rwIndex , 2).Value
                    table.Comment = .Cells(rwIndex , 3).Value '指定表注释,第3列的值
                    count = count + 1
                    tableName = .Cells(rwIndex,2) '获取表名
                end if
    
                set col = table.Columns.CreateNew   '创建一列/字段
                'MsgBox .Cells(rwIndex, 1).Value, vbOK + vbInformation, "列"
    
                if .Cells(rwIndex,5).Value  = "" then    '指定列名,如果备注不为空,则用备注信息,否则用code的全小写信息
                    col.Name = lcase(.Cells(rwIndex, 4).Value)   
                else
                    col.Name = .Cells(rwIndex,5).Value
                end if
                'MsgBox col.Name, vbOK + vbInformation, "列"
                col.Code = .Cells(rwIndex, 4).Value   '指定列编码
                col.DataType = .Cells(rwIndex, 7).Value '指定列数据类型
                'MsgBox col.DataType, vbOK + vbInformation, "列类型"
                col.Comment = .Cells(rwIndex,6).Value  '指定列说明
    
                if .Cells(rwIndex, 8).Value = "Y" Then    '设置主键信息
                    col.Primary = true
                End If
    
                if .Cells(rwIndex, 10).Value = "Y" Then    '设置主键自增长
                    col.Identity = true
                End If
                
                If.Cells(rwIndex, 9).Value = "NO" Then    '设置非空属性
                    col.Mandatory =true
                End If
            End With
        Next
    
        MsgBox "生成数据表结构共计 " + CStr(count), vbOK + vbInformation, ""
    
        xlsWorkBook.Close
        x1sApp.Quit
    
        set x1sApp = nothing
        set xlsWorkBook = nothing
    
        Exit Sub
    
    End sub
  • 相关阅读:
    Useful for Android the development engineer from Github
    Compile a native C Android application
    android-non-ui-ui-thread-communications-part-5-5
    android-non-ui-to-ui-thread-communications-part-4-of-5
    Android Non-UI to UI Thread Communications(Part 3 of 5)
    webpack 配置的相关标准化
    eslint 配置规则
    移动端自己实现table的思路
    前端 转pdf的方法
    关于git 提交的一些规范
  • 原文地址:https://www.cnblogs.com/heyt/p/13062884.html
Copyright © 2011-2022 走看看