'******************************************************************************
'* 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
分享到:
相关推荐
本主题聚焦于如何利用PB实现HTML格式导出Excel的功能。PowerBuilder的数据窗口(DataWindow)对象是这一过程的核心,它允许我们方便地操作数据库中的数据并进行多种格式的转换。 首先,我们需要了解`saveas`函数。...
本教程将深入探讨如何利用PB9的功能将数据窗口导出到一个Excel文件的不同工作表中,从而实现更高效的数据管理和分析。 首先,理解数据窗口的基本操作至关重要。数据窗口可以设计为多种样式,如表格、报告或图表,它...
标题 "pb表注释导出" 指的是使用PowerBuilder(PB)工具来导出Oracle数据库中的表结构和注释。PowerBuilder是一款强大的、基于事件驱动的编程环境,特别适用于开发数据库应用系统。在Oracle数据库中,表的注释是附加...
标题中的“PB数据窗口保存为Excel文件”是指在PowerBuilder(PB)开发环境中,使用数据窗口(Data Window)组件将报表数据导出为Microsoft Excel格式的过程。数据窗口是PowerBuilder的核心功能之一,它允许开发者...
在PowerBuilder(简称PB)开发环境中,经常需要将数据窗口中的数据导出到Excel文件中,特别是对于复杂的交叉表数据结构。本文将详细介绍如何在PB环境下实现这一功能,并对该段代码进行深入分析。 #### PB交叉表导出...
标题中的“计算机软件-商业源码-将pb导出excel.zip”表明这是一份与计算机软件相关的商业源码,主要用于将某种数据格式(pb)转换为Excel电子表格。pb通常指的是Protocol Buffers,这是一种由Google开发的数据序列化...
在本主题中,“datawindow带表头导出excel”指的是如何将带有表头的数据窗口内容导出到Microsoft Excel格式,以便进行进一步的数据分析、处理或分享。PowerBuilder提供了一种简便的方式实现这一功能,通过编程或者...
DW的配置包括设置数据源、定义列、绑定事件等,其中“TableName”参数用于指定DW与数据库表的关联,而在与Excel通讯时,这个参数则用于定义数据在DW中的结构。 **3. ChildDw数组在PB与Excel通讯中的应用** ChildDw...
当我们需要在PB应用中集成Excel功能,例如“PB读取excel”,通常是为了解决数据导入、导出或实时数据分析的需求。以下将详细介绍如何在PowerBuilder中读取Excel文件。 1. **PowerBuilder与Excel的接口**: PB提供...
- 接着,指定Excel文件的路径和工作表名称,确保PB能够正确读取Excel文件。 - 然后,定义数据窗口的列结构,使其与Excel文件中的列匹配。 - 通过“Data Painter”工具,你可以预览并调整数据的显示格式和样式。 ...
标题中的“dw2xls导出crosstab+grid美化”涉及到的是在PowerBuilder(PB)环境中,使用dw2xls工具将数据窗口(DataWindow)中的交叉表(Crosstab)转换为Excel(xls)格式,并对其进行美化的过程。在这个过程中,...
本文档主要介绍如何使用C#语言实现从DataGridView或DataTable数据结构导出数据至Excel文件,并在此过程中利用进度条显示导出进度。这一功能对于那些需要处理大量数据并在导出过程中向用户反馈进度的应用程序来说尤其...
在这个主题中,“pb8.0开发的转graph数据至excel的源代码”指的是使用PB8.0编写的一段程序,该程序能够将基于图形的数据转换并导出到Microsoft Excel中。 在PB8.0中,`Graph`对象用于创建和展示各种类型的图表,如...
首先,我们需要理解Excel文件的结构。Excel文件主要由工作簿(Workbook)组成,每个工作簿可以包含多个工作表(Worksheet)。数据存储在单元格(Cell)中,这些单元格按行(Row)和列(Column)排列。Excel文件的...
- **CSV文件导出**:由于其简洁的结构,非常适合大规模数据的快速导出。 - **使用ADO.NET Data Provider**:性能介于前两者之间,适合对性能有一定要求且不希望引入额外依赖的情况。 - **兼容性和可维护性**: -...
6. **报表和导出功能**:PB的数据窗口不仅可以用于数据输入和展示,还可以设计复杂的报表,并支持将数据导出为Excel、PDF等格式。 7. **错误处理和日志记录**:为了调试和追踪问题,系统通常会包含错误处理机制,...
8. **打印与导出**:PB自由报表还支持打印和导出功能,可以将报表内容输出为PDF、Excel或其他格式,方便进一步处理和分享。 总结来说,PB自由报表提供了强大的自定义能力和灵活性,使得开发人员能够创建出符合业务...
开发者可以利用SQL语言来设计和管理数据库表结构,执行各种复杂的SQL查询以获取所需信息。同时,SQL Server 2005还提供了安全性、性能优化和备份恢复等高级功能,确保了数据的安全性和可靠性。 3. 数据库设计: 在...
PB的Report窗口可以设计复杂的报表格式,并支持导出为PDF、Excel等格式。 综上所述,PB-SQL数据库查询在图书馆管理系统中扮演着核心角色,通过有效利用PB的特性和SQL的强大功能,我们可以构建出高效、易用的图书...
8. **数据导入导出**:系统可能支持与其他系统(如ERP或HRM系统)的数据交换,这需要实现数据的导入导出功能,可能涉及CSV、Excel或其他格式。 9. **备份与恢复**:为了防止数据丢失,系统应具备定期备份和灾难恢复...