PowerDesigner导出数据表结构到Excel 所有表结构在同一个Sheet中



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, SHEETLIST
      set EXCEL = CREATEOBJECT("Excel.Application")
      EXCEL.workbooks.add(-4167)	‘ 添加工作表Sheet1
      EXCEL.workbooks(1).sheets(1).name ="表结构"		‘Sheet1名称
      set SHEET = EXCEL.workbooks(1).sheets("表结构")	‘Sheet1对象

      EXCEL.workbooks(1).sheets.add		‘ 添加工作表Sheet2
      EXCEL.workbooks(1).sheets(1).name ="目录"			‘Sheet2名称
      set SHEETLIST = EXCEL.workbooks(1).sheets("目录")	‘Sheet2对象
      ShowTableList Model,SHEETLIST

      ShowProperties Model, SHEET,SHEETLIST

			output	"Select: " + EXCEL.workbooks(1).Sheets(2).name
      EXCEL.workbooks(1).Sheets(2).Select		‘选择默认打开的工作表
      EXCEL.visible = true	‘ 弹出Excel工作簿
      ‘ 设置列宽
      sheet.Columns(1).ColumnWidth = 20
      sheet.Columns(2).ColumnWidth = 20
      sheet.Columns(3).ColumnWidth = 20
      sheet.Columns(4).ColumnWidth = 40
      ‘根据需要添加列数,这里是4列,接着是自动换行
      sheet.Columns(1).WrapText =true
      sheet.Columns(2).WrapText =true
      sheet.Columns(4).WrapText =true
      ‘不显示网格线
      EXCEL.ActiveWindow.DisplayGridlines = True
 End If

‘-----------------------------------------------------------------------------
‘ Show properties of tables
‘-----------------------------------------------------------------------------
Sub ShowProperties(mdl, sheet,SheetList)
   ‘ Show tables of the current model/package
   rowsNum=0
   beginrow = rowsNum+1
   Dim rowIndex	‘ 为目录Sheet设置链接位置
   rowIndex=3
   ‘ For each table
   output "表结构 begin ========================"
   Dim tab	‘ Power Tables
   For Each tab In mdl.tables
      ShowTable tab,sheet,rowIndex,sheetList
      rowIndex = rowIndex +1
   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,rowIndex,sheetList)
   If IsObject(tab) Then

		rowsNum = rowsNum + 1	‘rowsNum=1,工作表第一行
		‘ Show properties
		Output ":表"+ tab.name +"的结构"
		sheet.cells(rowsNum, 1) =tab.name
		sheet.cells(rowsNum, 1).HorizontalAlignment=3
		sheet.cells(rowsNum, 2) = tab.code
		‘sheet.cells(rowsNum, 3) = tab.comment
		‘sheet.Range(sheet.cells(rowsNum, 3),sheet.cells(rowsNum, 4)).Merge	‘ 单元格合并

		‘设置超链接,从目录点击表名去查看表结构
		sheetList.Hyperlinks.Add sheetList.cells(rowIndex,2), "","表结构"&"!B"&rowsNum

		‘字段名称    字段编码    数据类型    注释
		rowsNum = rowsNum + 1	‘rowsNum=2,工作表第2行
		sheet.cells(rowsNum, 1) = "字段名称"
		sheet.cells(rowsNum, 2) = "字段编码"
		sheet.cells(rowsNum, 3) = "数据类型"
		sheet.cells(rowsNum, 4) = "注释"
		‘设置边框
		sheet.Range(sheet.cells(rowsNum-1, 1),sheet.cells(rowsNum, 4)).Borders.LineStyle = "1"
		‘字体为10号
		sheet.Range(sheet.cells(rowsNum-1, 1),sheet.cells(rowsNum, 4)).Font.Size=10
		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.comment
			‘5是否主键,6约束是否为Null,7默认值
			‘If col.Primary = true Then
			‘sheet.cells(rowsNum, 5) = "Y"
			‘Else
			‘sheet.cells(rowsNum, 5) = " "
			‘End If
			‘If col.Mandatory = true Then
			‘sheet.cells(rowsNum, 6) = "Y"
			‘Else
			‘sheet.cells(rowsNum, 6) = " "
			‘End If
			‘sheet.cells(rowsNum, 7) =  col.defaultvalue
		next
		sheet.Range(sheet.cells(rowsNum-colsNum+1,1),sheet.cells(rowsNum,4)).Borders.LineStyle = "3"    ‘ Style3边框线为虚线
		sheet.Range(sheet.cells(rowsNum-colsNum+1,1),sheet.cells(rowsNum,4)).Font.Size = 10
		rowsNum = rowsNum + 2	‘ 表间隔为2行

   End If

End Sub

‘-----------------------------------------------------------------------------
‘ Show List Of Table
‘-----------------------------------------------------------------------------
Sub ShowTableList(mdl, SheetList)
   ‘ Show tables of the current model/package
   Dim rowsNo
   rowsNo=1
   output "目录begin"
   SheetList.cells(rowsNo, 1) = "主题"
   SheetList.cells(rowsNo, 2) = "表名称"
   SheetList.cells(rowsNo, 3) = "表编码"
   SheetList.cells(rowsNo, 4) = "表说明"
   rowsNo = rowsNo + 1
   SheetList.cells(rowsNo, 1) = mdl.name
   ‘ For each table
   Dim tab
   For Each tab In mdl.tables
     If IsObject(tab) Then
        rowsNo = rowsNo + 1
				SheetList.cells(rowsNo, 1) = ""
				SheetList.cells(rowsNo, 2) = tab.name
				SheetList.cells(rowsNo, 3) = tab.code
				SheetList.cells(rowsNo, 4) = tab.comment
     End If
   Next

	SheetList.Columns(1).ColumnWidth = 20
	SheetList.Columns(2).ColumnWidth = 20
	SheetList.Columns(3).ColumnWidth = 30
	SheetList.Columns(4).ColumnWidth = 60
   output "目录end"
End Sub
下一篇:PowerDesigner导出数据表结构到Excel 一个表一个Sheet 带链接目录

原文地址:https://www.cnblogs.com/andea/p/10884659.html

时间: 2024-10-14 18:26:17

PowerDesigner导出数据表结构到Excel 所有表结构在同一个Sheet中的相关文章

Java导出数据行写入到Excel表格:基于Apache POI

Java导出数据行写入到Excel表格:基于Apache POI import java.io.File; import java.io.FileOutputStream; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class Excel

MongoDb导出数据.CSV格式到EXCEL

切换到mongodb安装目录,切换到bin目录下 执行以下命令 mongoexport -d myDB -c mycol -f _id,name,password,adress --csv -o ./test.csv -d  表示 数据库 -c   表示 collection -f   需要提取的field用逗号分隔 -o  输出路径

浅谈控件(组件)制作方法一(附带一delphi导出数据到Excel的组件实例)(原创)

来自:http://blog.csdn.net/zhdwjie/article/details/1490741 ------------------------------------------------------------------- 从99年学习delphi开始,我就被它的快速开发迷上了,那时候刚接触编程,对可视化开发特别来劲,原因嘛,不外乎是比C更快的实现啦,这几年来,从delphi的C/S到三层B/S,大大小小也写过一些软件,自认为这delphi也就这么些功能吧,自从最近偶得一

(六)成批导入导出数据

(六) 成批导入导出数据 假设已经存在teaching数据库, 存在一张Student表,如图: 右键teaching->任务->导入数据 下一步->数据源(Microsoft Excel)->文件路径导入表->下一步(选择哪个数据库) 下一步->复制一个或多个表或视图的数据 下一步->选择导入的表和导入到数据库的表,如图->编辑映射 下一步: 源 --> 目标 删除目标表中的行,原来表中数据被清除 向目标表中追加行(选择该选项)->确定 下一步

asp.net使用MVC4框架基于NPOI做导出数据到Excel表

NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写.NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写操作.使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写.NPOI是构建在POI 3.x版本

导出mysql表结构到excel脚本

该脚本用bash实现对本地mysql指定数据库的所有表结构导出到excel中. #!/bin/bashDB=$* #获取指定的数据库名 TBNUM=`echo "show tables from $*;" | mysql -uroot -ppassword | wc -l` let "TBNUM=$TBNUM-1" #获取表个数TABLES=`echo "show tables from $*;" | mysql -uroot -ppasswor

Mysql数据表导出数据为excel

笔者最近由于公司人员特殊需要,将Mysql数据库中特定表导出为excel格式数据保存.话絮休烦,以下为步骤: 1:cmd打开数据库,mysql -uroot -p 2:选择数据库,要是不知道具体名称:键入命令 SHOW DATABASES; 切换为目标数据库,USE DATABASENAME; 3:选择表,要是不知道具体哪张,键入命令SHOW TABLES; 4:输出:SELECT * FROM tablename INTO outfile 'path', path 为你准备输出目标的路径,笔者

利用数据库管理工具(Navicat)导出数据到Excel表中

如果只是想把数据库表中数据简单导出来,可以利用数据库管理工具中的工具 1.先查询 2.在查询出结果中全选 3.导出向导 4.选择Excel 5.选择导出地址并命名 原文地址:https://www.cnblogs.com/sanhao/p/9789232.html

Delphi 导出数据至Excel的7种方法【转】

转自:http://blog.csdn.net/zang141588761/article/details/52275948 一; delphi 快速导出excel uses ComObj,clipbrd; function ToExcel(sfilename:string; ADOQuery:TADOQuery):boolean; const xlNormal=-4143; var y : integer; tsList : TStringList; s,filename :string; a