Heim > Datenbank > MySQL-Tutorial > So konvertieren Sie Powerdesigner PDM-Dateien in Excel

So konvertieren Sie Powerdesigner PDM-Dateien in Excel

一个新手
Freigeben: 2017-10-13 09:57:17
Original
2998 Leute haben es durchsucht

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

把下面的脚本放进pd的脚本运行器运行即可

 

'******************************************************************************

Option Explicit

   Dim rowsNum

   rowsNum = 0

'-----------------------------------------------------------------------------

' Main function

'-----------------------------------------------------------------------------

' Get the current active model

    Dim Model

    Set Model = ActiveModel

    If (Model Is Nothing) Or (Not Model.IsKindOf(PdPDM.cls_Model)) Then

       MsgBox "The current model is not an PDM model."

    Else

      ' Get the tables collection

      '创建EXCEL APP

      dim beginrow

      DIM EXCEL, SHEET, SHEETLIST

      set EXCEL = CREATEOBJECT("Excel.Application")

      EXCEL.workbooks.add(-4167)'添加工作表

      EXCEL.workbooks(1).sheets(1).name ="表结构"

      set SHEET = EXCEL.workbooks(1).sheets("表结构")

       

      EXCEL.workbooks(1).sheets.add

      EXCEL.workbooks(1).sheets(1).name ="目录"

      set SHEETLIST = EXCEL.workbooks(1).sheets("目录")

      ShowTableList Model,SHEETLIST

 

      ShowProperties Model, SHEET,SHEETLIST

       

       

      EXCEL.workbooks(1).Sheets(2).Select

      EXCEL.visible = true

      '设置列宽和自动换行

      sheet.Columns(1).ColumnWidth = 20

      sheet.Columns(2).ColumnWidth = 20

      sheet.Columns(3).ColumnWidth = 20

      sheet.Columns(4).ColumnWidth = 40

      sheet.Columns(5).ColumnWidth = 10

      sheet.Columns(6).ColumnWidth = 10

      sheet.Columns(1).WrapText =true

      sheet.Columns(2).WrapText =true

      sheet.Columns(4).WrapText =true

      '不显示网格线

      EXCEL.ActiveWindow.DisplayGridlines = False

       

       

 End If

'-----------------------------------------------------------------------------

' Show properties of tables

'-----------------------------------------------------------------------------

Sub ShowProperties(mdl, sheet,SheetList)

   ' Show tables of the current model/package

   rowsNum=0

   beginrow = rowsNum+1

   Dim rowIndex

   rowIndex=3

   ' For each table

   output "begin"

   Dim tab

   For Each tab In mdl.tables

      ShowTable tab,sheet,rowIndex,sheetList

      rowIndex = rowIndex +1

   Next

   if mdl.tables.count > 0 then

        sheet.Range("A" & beginrow + 1 & ":A" & rowsNum).Rows.Group

   end if

   output "end"

End Sub

'-----------------------------------------------------------------------------

' Show table properties

'-----------------------------------------------------------------------------

Sub ShowTable(tab, sheet,rowIndex,sheetList)

   If IsObject(tab) Then

     Dim rangFlag

     rowsNum = rowsNum + 1

      ' Show properties

      Output "================================"

      sheet.cells(rowsNum, 1) =tab.name

      sheet.cells(rowsNum, 1).HorizontalAlignment=3

      sheet.cells(rowsNum, 2) = tab.code

      'sheet.cells(rowsNum, 5).HorizontalAlignment=3

      'sheet.cells(rowsNum, 6) = ""

      'sheet.cells(rowsNum, 7) = "表说明"

      sheet.cells(rowsNum, 3) = tab.comment

      'sheet.cells(rowsNum, 8).HorizontalAlignment=3

      sheet.Range(sheet.cells(rowsNum, 3),sheet.cells(rowsNum, 7)).Merge

      '设置超链接,从目录点击表名去查看表结构

      '字段中文名    字段英文名    字段类型    注释    是否主键    是否非空    默认值

      sheetList.Hyperlinks.Add sheetList.cells(rowIndex,2), "","表结构"&"!B"&rowsNum

      rowsNum = rowsNum + 1

      sheet.cells(rowsNum, 1) = "字段中文名"

      sheet.cells(rowsNum, 2) = "字段英文名"

      sheet.cells(rowsNum, 3) = "字段类型"

      sheet.cells(rowsNum, 4) = "注释"

      sheet.cells(rowsNum, 5) = "是否主键"

      sheet.cells(rowsNum, 6) = "是否非空"

      sheet.cells(rowsNum, 7) = "默认值"

      '设置边框

      sheet.Range(sheet.cells(rowsNum-1, 1),sheet.cells(rowsNum, 7)).Borders.LineStyle = "1"

      'sheet.Range(sheet.cells(rowsNum-1, 4),sheet.cells(rowsNum, 9)).Borders.LineStyle = "1"

      '字体为10号

      sheet.Range(sheet.cells(rowsNum-1, 1),sheet.cells(rowsNum, 7)).Font.Size=10

            Dim col ' running column

            Dim colsNum

            colsNum = 0

      for each col in tab.columns

        rowsNum = rowsNum + 1

        colsNum = colsNum + 1

          sheet.cells(rowsNum, 1) = col.name

        'sheet.cells(rowsNum, 3) = ""

          'sheet.cells(rowsNum, 4) = col.name

          sheet.cells(rowsNum, 2) = col.code

          sheet.cells(rowsNum, 3) = col.datatype

        sheet.cells(rowsNum, 4) = col.comment

          If col.Primary = true Then

        sheet.cells(rowsNum, 5) = "Y"

        Else

        sheet.cells(rowsNum, 5) = " "

        End If

        If col.Mandatory = true Then

        sheet.cells(rowsNum, 6) = "Y"

        Else

        sheet.cells(rowsNum, 6) = " "

        End If

        sheet.cells(rowsNum, 7) =  col.defaultvalue

      next

      sheet.Range(sheet.cells(rowsNum-colsNum+1,1),sheet.cells(rowsNum,7)).Borders.LineStyle = "3"      

      'sheet.Range(sheet.cells(rowsNum-colsNum+1,4),sheet.cells(rowsNum,9)).Borders.LineStyle = "3"

      sheet.Range(sheet.cells(rowsNum-colsNum+1,1),sheet.cells(rowsNum,7)).Font.Size = 10

      rowsNum = rowsNum + 2

       

      Output "FullDescription: "       + tab.Name

   End If

    

End Sub

'-----------------------------------------------------------------------------

' Show List Of Table

'-----------------------------------------------------------------------------

Sub ShowTableList(mdl, SheetList)

   ' Show tables of the current model/package

   Dim rowsNo

   rowsNo=1

   ' For each table

   output "begin"

   SheetList.cells(rowsNo, 1) = "主题"

   SheetList.cells(rowsNo, 2) = "表中文名"

   SheetList.cells(rowsNo, 3) = "表英文名"

   SheetList.cells(rowsNo, 4) = "表说明"

   rowsNo = rowsNo + 1

   SheetList.cells(rowsNo, 1) = mdl.name

   Dim tab

   For Each tab In mdl.tables

     If IsObject(tab) Then

         rowsNo = rowsNo + 1

      SheetList.cells(rowsNo, 1) = ""

      SheetList.cells(rowsNo, 2) = tab.name

      SheetList.cells(rowsNo, 3) = tab.code

      SheetList.cells(rowsNo, 4) = tab.comment

     End If

   Next

    SheetList.Columns(1).ColumnWidth = 20

      SheetList.Columns(2).ColumnWidth = 20

      SheetList.Columns(3).ColumnWidth = 30

     SheetList.Columns(4).ColumnWidth = 60

   output "end"

End Sub

Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie Powerdesigner PDM-Dateien in Excel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage