zoukankan      html  css  js  c++  java
  • powerdesigner 导出excel

    1. powerdesigner菜单栏中,依次点击 Tools ->Excute Commands->Edit/Run Script..

    2. 弹出框中填入以下代码,点击 Run 就会导出到EXCEL中,并自动打开EXCEL。

    '******************************************************************************
    
    '* File:     pdm2excel.txt
    
    '* Title:    pdm export to excel
    
    '* Purpose:  To export the tables and columns to Excel
    
    '* Model:    Physical Data Model
    
    '* Objects:  Table, Column, View
    
    '* Version:  1.0
    
    '******************************************************************************
    
    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
    
     set EXCEL = CREATEOBJECT("Excel.Application")
    
     EXCEL.workbooks.add(-4167)'添加工作表
    
     EXCEL.workbooks(1).sheets(1).name ="test"
    
     set sheet = EXCEL.workbooks(1).sheets("test")
    
     
    
     ShowProperties Model, SHEET
    
     EXCEL.visible = true
    
     '设置列宽和自动换行
    
     sheet.Columns(1).ColumnWidth = 20 
    
     sheet.Columns(2).ColumnWidth = 40 
    
     sheet.Columns(4).ColumnWidth = 20 
    
     sheet.Columns(5).ColumnWidth = 20 
    
     sheet.Columns(6).ColumnWidth = 15 
    
     sheet.Columns(1).WrapText =true
    
     sheet.Columns(2).WrapText =true
    
     sheet.Columns(4).WrapText =true
    
     End If
    
    '-----------------------------------------------------------------------------
    
    ' Show properties of tables
    
    '-----------------------------------------------------------------------------
    
    Sub ShowProperties(mdl, sheet)
    
       ' Show tables of the current model/package
    
       rowsNum=0
    
       beginrow = rowsNum+1
    
       ' For each table
    
       output "begin"
    
       Dim tab
    
       For Each tab In mdl.tables
    
          ShowTable tab,sheet
    
       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)
    
       If IsObject(tab) Then
    
         Dim rangFlag
    
         rowsNum = rowsNum + 1
    
          ' Show properties
    
          Output "================================"
    
          sheet.cells(rowsNum, 1) = "实体名"
    
          sheet.cells(rowsNum, 2) =tab.name
    
          sheet.cells(rowsNum, 3) = ""
    
          sheet.cells(rowsNum, 4) = "表名"
    
          sheet.cells(rowsNum, 5) = tab.code
    
          sheet.Range(sheet.cells(rowsNum, 5),sheet.cells(rowsNum, 6)).Merge
    
          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.Range(sheet.cells(rowsNum-1, 1),sheet.cells(rowsNum, 2)).Borders.LineStyle = "1"
    
          sheet.Range(sheet.cells(rowsNum-1, 4),sheet.cells(rowsNum, 6)).Borders.LineStyle = "1"
    
    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, 2) = col.comment
    
            sheet.cells(rowsNum, 3) = ""
    
          sheet.cells(rowsNum, 4) = col.name
    
          sheet.cells(rowsNum, 5) = col.code
    
          sheet.cells(rowsNum, 6) = col.datatype
    
          next
    
          sheet.Range(sheet.cells(rowsNum-colsNum+1,1),sheet.cells(rowsNum,2)).Borders.LineStyle = "2"       
    
          sheet.Range(sheet.cells(rowsNum-colsNum+1,4),sheet.cells(rowsNum,6)).Borders.LineStyle = "2"
    
          rowsNum = rowsNum + 1
    
          
    
          Output "FullDescription: "       + tab.Name
    
       End If
    
    End Sub
  • 相关阅读:
    8.4 IP地址的划分及子网划分
    8.3 TCPIP协议族
    微软官方宣布:Edge 浏览器将采用 Chromium 内核
    微软官方宣布:Edge 浏览器将采用 Chromium 内核
    微软官方宣布:Edge 浏览器将采用 Chromium 内核
    Web 安全开发规范手册 V1.0
    Web 安全开发规范手册 V1.0
    Web 安全开发规范手册 V1.0
    NET Core入门笔记
    NET Core入门笔记
  • 原文地址:https://www.cnblogs.com/VweiweiyixiaoV/p/6773173.html
Copyright © 2011-2022 走看看