毕业设计同学们的福利(将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
如果你读了我的文章,觉得有帮助,你可以选择:支付宝赞助
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/jptiancai/p/2444455.html