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

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

    填入

    '******************************************************************************
    
    '* 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
    
    '* Author:   ziyan
    
    '* Created:  2012-05-03
    
    '* 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

    PD会自动打开EXCEL,并导出到EXCEL中

  • 相关阅读:
    C# 文件类的操作---删除
    C#实现Zip压缩解压实例
    UVALIVE 2431 Binary Stirling Numbers
    UVA 10570 meeting with aliens
    UVA 306 Cipher
    UVA 10994 Simple Addition
    UVA 696 How Many Knights
    UVA 10205 Stack 'em Up
    UVA 11125 Arrange Some Marbles
    UVA 10912 Simple Minded Hashing
  • 原文地址:https://www.cnblogs.com/linyijia/p/5674479.html
Copyright © 2011-2022 走看看