导出mysql excel数据字典_mysql导出 Excel数据字典(全)
解決問題(有mysql數據庫數據表想要將表導入到PowerDesigner 或導出Excel數據字典)
一、下載工具
1、工具PowerDesigner 百度自行下載安裝
2、mysql-connector-odbc 下載鏈接: https://pan.baidu.com/s/1cjb73f3GvkkMFAzZKi85xA 提取碼: u5ih
二、mysql數據庫數據表想要將表導入到PowerDesigner
1、創建一個新的PowerDesigner
(一)創建逆向工程
(二)選擇數據庫類型我們這里是mysql
(三)連接我們的數據庫 點擊連接按鈕
(四)點擊配置
(五)點擊新增一個數據連接 點擊確定
(六)選擇用戶數據源 下一步
(七)選擇mysql 下一步
(八)點擊完成
(九)填寫用戶名密碼 第一項創建數據源名稱,第二項創建數據源描述,第三項創建數據源的IP地址 端口號,第四項名稱,第五項密碼,
最后一項想要導的數據庫這里可以不選 點擊Test成功后點擊ok 就會出現一個剛創建的數據源點擊確定
(十)選擇剛剛創建的數據源 連接確定
(十一)選擇要導的庫(如要導出所有表可滑到最上面可選擇All users)點擊ok再點擊ok
(十二)mysql數據庫數據表想要將表導入到PowerDesigner(完成)
三、導出Excel數據字典
1、選中想要導出Excel數據字典的表 按ctrl + shift +x 然后運行腳本 大功告成
'******************************************************************************
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)'添加工作表
EXCEL.workbooks(1).sheets(1).name ="表結構"set SHEET= EXCEL.workbooks(1).sheets("表結構")
EXCEL.workbooks(1).sheets.add
EXCEL.workbooks(1).sheets(1).name ="目錄"set SHEETLIST= EXCEL.workbooks(1).sheets("目錄")
ShowTableList Model,SHEETLIST
ShowProperties Model, SHEET,SHEETLIST
EXCEL.workbooks(1).Sheets(2).Select
EXCEL.visible= true
'設置列寬和自動換行
sheet.Columns(1).ColumnWidth = 20sheet.Columns(2).ColumnWidth = 20sheet.Columns(3).ColumnWidth = 20sheet.Columns(4).ColumnWidth = 40sheet.Columns(5).ColumnWidth = 10sheet.Columns(6).ColumnWidth = 10sheet.Columns(1).WrapText =truesheet.Columns(2).WrapText =truesheet.Columns(4).WrapText =true
'不顯示網格線
EXCEL.ActiveWindow.DisplayGridlines =False
End If'-----------------------------------------------------------------------------' Show properties of tables'-----------------------------------------------------------------------------
Sub ShowProperties(mdl, sheet,SheetList)' Show tables of the current model/package
rowsNum=0beginrow= rowsNum+1Dim rowIndex
rowIndex=3
' For each table
output "begin"Dim tab
For Each tab In mdl.tables
ShowTable tab,sheet,rowIndex,sheetList
rowIndex= rowIndex +1Nextif mdl.tables.count > 0then
sheet.Range("A" & beginrow + 1 & ":A" &rowsNum).Rows.Group
endifoutput"end"End Sub'-----------------------------------------------------------------------------' Show table properties'-----------------------------------------------------------------------------
Sub ShowTable(tab, sheet,rowIndex,sheetList)
If IsObject(tab) Then
Dim rangFlag
rowsNum= rowsNum + 1
' Show properties
Output "================================"sheet.cells(rowsNum,1) =tab.name
sheet.cells(rowsNum,1).HorizontalAlignment=3sheet.cells(rowsNum,2) =tab.code'sheet.cells(rowsNum, 5).HorizontalAlignment=3
'sheet.cells(rowsNum, 6) = ""
'sheet.cells(rowsNum, 7) = "表說明"
sheet.cells(rowsNum, 3) =tab.comment'sheet.cells(rowsNum, 8).HorizontalAlignment=3
sheet.Range(sheet.cells(rowsNum, 3),sheet.cells(rowsNum, 7)).Merge'設置超鏈接,從目錄點擊表名去查看表結構
'字段中文名 字段英文名 字段類型 注釋 是否主鍵 是否非空 默認值
sheetList.Hyperlinks.Add sheetList.cells(rowIndex,2), "","表結構"&"!B"&rowsNum
rowsNum= rowsNum + 1sheet.cells(rowsNum,1) = "字段中文名"sheet.cells(rowsNum,2) = "字段英文名"sheet.cells(rowsNum,3) = "字段類型"sheet.cells(rowsNum,4) = "注釋"sheet.cells(rowsNum,5) = "是否主鍵"sheet.cells(rowsNum,6) = "是否非空"sheet.cells(rowsNum,7) = "默認值"
'設置邊框
sheet.Range(sheet.cells(rowsNum-1, 1),sheet.cells(rowsNum, 7)).Borders.LineStyle = "1"
'sheet.Range(sheet.cells(rowsNum-1, 4),sheet.cells(rowsNum, 9)).Borders.LineStyle = "1"
'字體為10號
sheet.Range(sheet.cells(rowsNum-1, 1),sheet.cells(rowsNum, 7)).Font.Size=10Dim col' running column
Dim colsNum
colsNum= 0
foreach col in tab.columns
rowsNum= rowsNum + 1colsNum= colsNum + 1sheet.cells(rowsNum,1) =col.name'sheet.cells(rowsNum, 3) = ""
'sheet.cells(rowsNum, 4) = col.name
sheet.cells(rowsNum, 2) =col.code
sheet.cells(rowsNum,3) =col.datatype
sheet.cells(rowsNum,4) =col.comment
If col.Primary= trueThen
sheet.cells(rowsNum,5) = "Y"Else
sheet.cells(rowsNum,5) = " "End If
If col.Mandatory= trueThen
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,7)).Borders.LineStyle = "3"
'sheet.Range(sheet.cells(rowsNum-colsNum+1,4),sheet.cells(rowsNum,9)).Borders.LineStyle = "3"
sheet.Range(sheet.cells(rowsNum-colsNum+1,1),sheet.cells(rowsNum,7)).Font.Size = 10rowsNum= rowsNum + 2Output"FullDescription: " +tab.Name
End If
End Sub'-----------------------------------------------------------------------------' Show List Of Table'-----------------------------------------------------------------------------
Sub ShowTableList(mdl, SheetList)' Show tables of the current model/package
Dim rowsNo
rowsNo=1
' For each table
output "begin"SheetList.cells(rowsNo,1) = "主題"SheetList.cells(rowsNo,2) = "表中文名"SheetList.cells(rowsNo,3) = "表英文名"SheetList.cells(rowsNo,4) = "表說明"rowsNo= rowsNo + 1SheetList.cells(rowsNo,1) =mdl.name
Dim tab
For Each tab In mdl.tables
If IsObject(tab) Then
rowsNo= rowsNo + 1SheetList.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 = 20SheetList.Columns(2).ColumnWidth = 20SheetList.Columns(3).ColumnWidth = 30SheetList.Columns(4).ColumnWidth = 60output"end"End Sub
總結
以上是生活随笔為你收集整理的导出mysql excel数据字典_mysql导出 Excel数据字典(全)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 北京环球影城学生门票价格
- 下一篇: 地下城与勇士游戏中DNF逆流反击不被怪攻