zoukankan      html  css  js  c++  java
  • PowerDesigner导出Excel

    1、打开PowerDesigner,创建物理模型(Physical Data Model)

    2、在PowerDesigner菜单栏中,依次点击“Tools ->Excute Commands->Edit/Run Script..”

    3、运行脚本

    '******************************************************************************
    '* 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
  • 相关阅读:
    “fatal error: hdf5.h: 没有那个文件或目录”解决方法
    算法狗的机器学习基础
    统计:假设检验 T检验
    各种排序和数据结构算法收藏
    知乎好书--入门神经网络和机器学习
    机器学习中的数学(1)-回归(regression)、梯度下降(gradient descent)
    第八天 T3S04
    第七天 T3S03
    第六天T3S02
    T3S01
  • 原文地址:https://www.cnblogs.com/xxaxx/p/4343776.html
Copyright © 2011-2022 走看看