zoukankan      html  css  js  c++  java
  • 毕业设计同学们的福利(将word表格导入PowerDesigner中实现快速创建PDM)

    借鉴了两位大神的文章,编写了自己小工具,以下是他们的文章

    1、http://www.cnblogs.com/pc-funning/archive/2009/01/21/1379537.html

    2、http://yjgoo.iteye.com/blog/296211

      下面是我修改的代码:

     1 Option Explicit
     2 
     3 '-----------------------------------------------------------------------------
     4 ' 魔尊年少时制作 http://pc-funning.cnblogs.com/
     5 ' 随便修改增强,希望能做记录,做注释,保留出处
     6 ' 2009-1-21最后整理
     7 ' 2012-4-12 整理
     8 '-----------------------------------------------------------------------------
     9 Dim system, file
    10 Set system = CreateObject("Scripting.FileSystemObject") '创建文件对象
    11 
    12 
    13 Dim ForReading, ForWriting, ForAppending
    14 dim str '表字段
    15 dim tittle '表的名字
    16 dim first
    17 ForReading   = 1 ' 设置文件只读 
    18 ForWriting   = 2 ' 设置文件写入
    19 ForAppending = 8 ' 设置文件追加
    20 
    21 '-----------------------------------------------------------------------------
    22 ' 主要程序
    23 '-----------------------------------------------------------------------------
    24 
    25 Set file = system.OpenTextFile("D:\table.txt", ForReading)'打开文本文档
    26 Dim noLine
    27 Dim Tab  '定义一个表,vbscript中变量没有那么严格的类型,但此变量将来将用来表示table
    28 ValidationMode = True
    29 Dim mdl ' 定义当前激活的模型,也就是mdl
    30 Dim Col '定义列
    31 dim dm, dmstr '定义
    32 Dim SSS '定义截取字符串的标准
    33 Dim isNewTable '定义是否是新表
    34 Dim i '记录下第几行,0代表第一行
    35 
    36 
    37 Set mdl = ActiveModel '获取当前激活模型
    38 
    39 '-----------------------------------------------------------------------------
    40 ' 建表操作
    41 '-----------------------------------------------------------------------------
    42 set Tab = mdl.Tables.CreateNew
    43 isNewTable = True
    44 
    45 first=file.readline '读文档按行读
    46 tittle=split(first) '以空格分隔划分入数组,获取的是表的属性,可以获取更多属性,根据实际情况而定
    47 tab.name=tittle(0) 'name
    48 tab.code=tittle(1) 'code
    49 tab.comment=tittle(2) 'comment
    50 
    51 '-----------------------------------------------------------------------------
    52 ' 向表里的字段赋值操作
    53 '-----------------------------------------------------------------------------
    54 Do While file.AtEndOfStream <> True '循环读取文档的每一行
    55  '获得每个字段的数据
    56    SSS = file.ReadLine
    57    str=split(SSS)
    58    
    59   '判断是不是新表
    60    if isNewTable = true then
    61      if SSS <> "" then '如果获取的是字符串,则不见新表
    62        isNewTable = False
    63        
    64      end if
    65    elseif SSS = "" then '如果获取的是空格,
    66      set Tab = mdl.Tables.CreateNew  '创建新表,这是读到空行时的表现,自己用来警示,所以txt文档中的表与字段之间不要有空行
    67      
    68    else  
    69      set Col=tab.Columns.CreateNew '创建一行字段 (若不成功,默认创建7行字段)
    70      
    71     '依次设置属性,同表的属性,字段熟悉也可以设置更多,根据实际情况
    72      Col.name = str(0) '字段名称
    73      Col.Code= str(1) '字段说明
    74      Col.datatype=str(2) '字段类型
    75 '-----------------------------------------------------------------------------
    76 ' 当是第一行的时候设为主键,自己写的,i到后面可以添加外键和精度使用
    77 '-----------------------------------------------------------------------------
    78     'Col.precision=str(1) '字段精度
    79      if i=0 then 
    80      Col.primary=true'设置主键
    81      end if
    82      i=i+1
    83      
    84    end if 
    85  
    86    
    87     
    88 Loop 
    89 file.Close
    手机收藏该文章
    作者:jptiancai
    如果你读了我的文章,觉得有帮助,你可以选择:支付宝赞助
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    【Electron】Electron 调试
    正则表达式中test、exec、match的区别
    $.extend 与Object.assign的相同与不同
    【Vue】v-for中为什么要用key——diff算法中key作用源码
    【Vue】watch中的deep:true源码实现
    【Vue】vue中computed源码详解
    Network conditions——在不同网络条件下优化性能
    JS中的{}、()、自调用及()=>({})写法含义
    innerHTML和outerHTML区别以及document.querySelector
    SignalR
  • 原文地址:https://www.cnblogs.com/jptiancai/p/2444455.html
Copyright © 2011-2022 走看看