`
elvis4139
  • 浏览: 147766 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

PB 表结构导出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
'* Author:   By
'* Created:  2014-11-28
'* Version:  1.0
'******************************************************************************
Option Explicit
   Dim rowsNum,fontName,fontSize,tableCount,isFomart,isVisible
   rowsNum = 0
   tableCount = 1
  
   fontName = "微软雅黑"
   fontSize = 10
'-----------------------------------------------------------------------------
' 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 EXCEL, SHEET,SHEET1
set EXCEL = CREATEOBJECT("Excel.Application")
EXCEL.workbooks.add(-4167)'添加工作表

set sheet1 = EXCEL.workbooks(1).Sheets(1)          '添加新sheet
sheet1.name = "目录"

sheet1.cells(1,1) = "中文名称"
sheet1.Columns(1).ColumnWidth = 40
sheet1.Columns(1).Font.Name = fontName
sheet1.Columns(1).Font.Size = fontSize

sheet1.cells(1,2) = "表名"
sheet1.Columns(2).ColumnWidth = 30
sheet1.Columns(2).Font.Name = fontName
sheet1.Columns(2).Font.Size = fontSize

sheet1.cells(1,3) = "注释"
sheet1.Columns(3).ColumnWidth = 50
sheet1.Columns(3).Font.Name = fontName
sheet1.Columns(3).Font.Size = fontSize

EXCEL.visible = true
ShowProperties Model
shortSheets EXCEL

End If
'-----------------------------------------------------------------------------
' Show properties of tables
'-----------------------------------------------------------------------------
Sub ShowProperties(mdl)
   ' Show tables of the current model/package
   rowsNum=0
   ' For each table
   output "begin"
   Dim tab
   For Each tab In mdl.tables
  
      '循环处理每个表信息
      ShowTable tab
     
   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)
   
    If IsObject(tab) Then
   
    tableCount = tableCount + 1
   
    '设置目录页信息
    'sheet1.cells(tableCount,1) = tab.name
    sheet1.Hyperlinks.Add sheet1.Range("A"&tableCount), "", tab.code&"!B1", "", tab.name
    sheet1.cells(tableCount,1).Font.Name = fontName
    sheet1.cells(tableCount,1).Font.Size = fontSize
   
    sheet1.cells(tableCount,2) = tab.code
    sheet1.cells(tableCount,3) = tab.comment
 
 
    '创建新sheet页
    set SHEET = EXCEL.workbooks(1).Sheets.Add
    sheet.Name = tab.code
   
     '设置列宽
    sheet.Columns(1).ColumnWidth = 20
    sheet.Columns(2).ColumnWidth = 20
    sheet.Columns(3).ColumnWidth = 20
    sheet.Columns(4).ColumnWidth = 10
    sheet.Columns(5).ColumnWidth = 10
    sheet.Columns(6).ColumnWidth = 30
   
    '设置列字体
    sheet.Columns(1).Font.Name = fontName
    sheet.Columns(2).Font.Name = fontName
    sheet.Columns(3).Font.Name = fontName
    sheet.Columns(4).Font.Name = fontName
    sheet.Columns(5).Font.Name = fontName
    sheet.Columns(6).Font.Name = fontName
   
    '设置列字号
    sheet.Columns(1).Font.Size = fontSize
    sheet.Columns(2).Font.Size = fontSize
    sheet.Columns(3).Font.Size = fontSize
    sheet.Columns(4).Font.Size = fontSize
    sheet.Columns(5).Font.Size = fontSize
    sheet.Columns(6).Font.Size = fontSize
   
     Dim rangFlag
     rowsNum = 1
      ' Show properties
      Output "================================"
 
      sheet.cells(rowsNum, 1) = tab.name
      sheet.cells(rowsNum, 2) = tab.code
      sheet.cells(rowsNum, 3) = tab.comment

      rowsNum = rowsNum + 1
     
      '设置列标题行字体和背景色
      sheet.rows(rowsNum).Font.Bold = true
      sheet.rows(rowsNum).Interior.Color = RGB(217,217,217)
     
      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.code
      sheet.cells(rowsNum, 3) = col.datatype
      sheet.cells(rowsNum, 4) = col.primary
      sheet.cells(rowsNum, 5) = col.defaultvalue
      sheet.cells(rowsNum, 6) = col.comment

      next
      'sheet.Columns("A:F").AutoFit  '自动列宽
     
      '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
'-----------------------------------------------------------------------------
' short sheets
'-----------------------------------------------------------------------------
Sub shortSheets(EXCEL)
   For Each sheet In EXCEL.workbooks(1).Sheets
      sheet.Move EXCEL.workbooks(1).Sheets(1)
   Next
End Sub
分享到:
评论

相关推荐

    PB9将数据窗口导出到一个EXCEL文件的多个工作表中

    本教程将深入探讨如何利用PB9的功能将数据窗口导出到一个Excel文件的不同工作表中,从而实现更高效的数据管理和分析。 首先,理解数据窗口的基本操作至关重要。数据窗口可以设计为多种样式,如表格、报告或图表,它...

    PB使用HTML格式导出Excel.rar_excel_pb excel_pb html_pb导出excel_pb读取html文

    本主题聚焦于如何利用PB实现HTML格式导出Excel的功能。PowerBuilder的数据窗口(DataWindow)对象是这一过程的核心,它允许我们方便地操作数据库中的数据并进行多种格式的转换。 首先,我们需要了解`saveas`函数。...

    pb表注释导出

    标题 "pb表注释导出" 指的是使用PowerBuilder(PB)工具来导出Oracle数据库中的表结构和注释。PowerBuilder是一款强大的、基于事件驱动的编程环境,特别适用于开发数据库应用系统。在Oracle数据库中,表的注释是附加...

    PB数据窗口保存为Excel文件

    标题中的“PB数据窗口保存为Excel文件”是指在PowerBuilder(PB)开发环境中,使用数据窗口(Data Window)组件将报表数据导出为Microsoft Excel格式的过程。数据窗口是PowerBuilder的核心功能之一,它允许开发者...

    针对交叉表导出到excel的功能函数

    在PowerBuilder(简称PB)开发环境中,经常需要将数据窗口中的数据导出到Excel文件中,特别是对于复杂的交叉表数据结构。本文将详细介绍如何在PB环境下实现这一功能,并对该段代码进行深入分析。 #### PB交叉表导出...

    计算机软件-商业源码-将pb导出excel.zip

    标题中的“计算机软件-商业源码-将pb导出excel.zip”表明这是一份与计算机软件相关的商业源码,主要用于将某种数据格式(pb)转换为Excel电子表格。pb通常指的是Protocol Buffers,这是一种由Google开发的数据序列化...

    datawindow导出Excel

    在本主题中,“datawindow带表头导出excel”指的是如何将带有表头的数据窗口内容导出到Microsoft Excel格式,以便进行进一步的数据分析、处理或分享。PowerBuilder提供了一种简便的方式实现这一功能,通过编程或者...

    PB与Excel通讯

    DW的配置包括设置数据源、定义列、绑定事件等,其中“TableName”参数用于指定DW与数据库表的关联,而在与Excel通讯时,这个参数则用于定义数据在DW中的结构。 **3. ChildDw数组在PB与Excel通讯中的应用** ChildDw...

    PB读取excel

    当我们需要在PB应用中集成Excel功能,例如“PB读取excel”,通常是为了解决数据导入、导出或实时数据分析的需求。以下将详细介绍如何在PowerBuilder中读取Excel文件。 1. **PowerBuilder与Excel的接口**: PB提供...

    20150831将Excel数据倒入PB数据窗口中的DW

    - 接着,指定Excel文件的路径和工作表名称,确保PB能够正确读取Excel文件。 - 然后,定义数据窗口的列结构,使其与Excel文件中的列匹配。 - 通过“Data Painter”工具,你可以预览并调整数据的显示格式和样式。 ...

    dw2xls导出crosstab+grid美化

    标题中的“dw2xls导出crosstab+grid美化”涉及到的是在PowerBuilder(PB)环境中,使用dw2xls工具将数据窗口(DataWindow)中的交叉表(Crosstab)转换为Excel(xls)格式,并对其进行美化的过程。在这个过程中,...

    将DataGridView或DataTable导出为Excel支持进度条

    本文档主要介绍如何使用C#语言实现从DataGridView或DataTable数据结构导出数据至Excel文件,并在此过程中利用进度条显示导出进度。这一功能对于那些需要处理大量数据并在导出过程中向用户反馈进度的应用程序来说尤其...

    pb8.0开发的转graph数据至excel的源代码

    在这个主题中,“pb8.0开发的转graph数据至excel的源代码”指的是使用PB8.0编写的一段程序,该程序能够将基于图形的数据转换并导出到Microsoft Excel中。 在PB8.0中,`Graph`对象用于创建和展示各种类型的图表,如...

    Excel file read/write program

    首先,我们需要理解Excel文件的结构。Excel文件主要由工作簿(Workbook)组成,每个工作簿可以包含多个工作表(Worksheet)。数据存储在单元格(Cell)中,这些单元格按行(Row)和列(Column)排列。Excel文件的...

    对.NET中导出数据到EXCEL的几种方法探讨 C1TrueDBGrid

    - **CSV文件导出**:由于其简洁的结构,非常适合大规模数据的快速导出。 - **使用ADO.NET Data Provider**:性能介于前两者之间,适合对性能有一定要求且不希望引入额外依赖的情况。 - **兼容性和可维护性**: -...

    PB 简单的管理系统

    6. **报表和导出功能**:PB的数据窗口不仅可以用于数据输入和展示,还可以设计复杂的报表,并支持将数据导出为Excel、PDF等格式。 7. **错误处理和日志记录**:为了调试和追踪问题,系统通常会包含错误处理机制,...

    pb自由报表

    8. **打印与导出**:PB自由报表还支持打印和导出功能,可以将报表内容输出为PDF、Excel或其他格式,方便进一步处理和分享。 总结来说,PB自由报表提供了强大的自定义能力和灵活性,使得开发人员能够创建出符合业务...

    pb+sql学生信息管理系统

    开发者可以利用SQL语言来设计和管理数据库表结构,执行各种复杂的SQL查询以获取所需信息。同时,SQL Server 2005还提供了安全性、性能优化和备份恢复等高级功能,确保了数据的安全性和可靠性。 3. 数据库设计: 在...

    PB-SQL 数据库查询

    PB的Report窗口可以设计复杂的报表格式,并支持导出为PDF、Excel等格式。 综上所述,PB-SQL数据库查询在图书馆管理系统中扮演着核心角色,通过有效利用PB的特性和SQL的强大功能,我们可以构建出高效、易用的图书...

    pb 档案管理信息系统

    8. **数据导入导出**:系统可能支持与其他系统(如ERP或HRM系统)的数据交换,这需要实现数据的导入导出功能,可能涉及CSV、Excel或其他格式。 9. **备份与恢复**:为了防止数据丢失,系统应具备定期备份和灾难恢复...

Global site tag (gtag.js) - Google Analytics