powerdesigner導出表數據庫設計文檔excel

1、連接數據庫,導出表結構的sql腳本

2、打開powerdesigner,生成項目空間表

sql腳本用第一步的腳本

3、用script腳本生成excel

腳本信息

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 = 10?
? ? ? sheet.Columns(2).ColumnWidth = 20?
? ? ? sheet.Columns(3).ColumnWidth = 20?
? ? ? sheet.Columns(4).ColumnWidth = 20?
? ? ? sheet.Columns(5).ColumnWidth = 40?
? ? ? sheet.Columns(6).ColumnWidth = 10?
? ? ? sheet.Columns(1).WrapText =true
? ? ? sheet.Columns(2).WrapText =true
? ? ? sheet.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=0
? ?beginrow = rowsNum+1
? ?Dim rowIndex?
? ?rowIndex=3
? ?' For each table
? ?output "begin"
? ?Dim tab
? ?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
? ? ?Dim rangFlag
? ? ?rowsNum = rowsNum + 1
? ? ? ' Show properties
? ? ? Output "================================"
? ? ? sheet.cells(rowsNum, 1) =tab.name
? ? ? sheet.cells(rowsNum, 1).HorizontalAlignment=3
? ? ? sheet.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 + 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) = "java屬性"
??
? ? ? '設置邊框
? ? ? 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=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) = colsNum
? ? ? ? '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, 5) = col.comment
? ? ? ? ? sheet.cells(rowsNum, 4) = col.length
? ? ? ??
? ? ? 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 = 10
? ? ? rowsNum = rowsNum + 2
? ? ??
? ? ? Output "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 + 1
? ?SheetList.cells(rowsNo, 1) = mdl.name
? ?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

4、預覽excel

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/45491.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/45491.shtml
英文地址,請注明出處:http://en.pswp.cn/web/45491.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CV12_ONNX轉RKNN模型(諦聽盒子)

暫時簡單整理一下: 1.在邊緣設備上配置相關環境。 2.配置完成后,獲取模型中間的輸入輸出結果,保存為npy格式。 3.將onnx格式的模型,以及中間輸入輸出文件傳送到邊緣設備上。 4.編寫一個python文件用于轉換模型格式&#xff0c…

Git---git本地配置commit_template提交模板,規范開發

如何在Git中配置Commit Template以規范開發 在軟件開發過程中,規范化的提交信息(commit messages)對于項目的可維護性和協作效率至關重要。Git 提供了配置 commit template 的功能,允許開發者預設一個模板,用于在提交…

[iOS]內存分區

[iOS]內存分區 文章目錄 [iOS]內存分區五大分區棧區堆區全局區常量區代碼區驗證內存使用注意事項總結 函數棧堆棧溢出棧的作用 參考博客 在iOS中,內存主要分為棧區、堆區、全局區、常量區、代碼區五大區域 還記得OC是C的超類 所以C的內存分區也是一樣的 iOS系統中&a…

51單片機STC89C52RC——19.1 SG90舵機(伺服電機)

目的/效果 獨立按鍵K1,K2 實現加舵機減角度增減,LCD1602顯示舵機轉角度數(上電默認90度) 一,STC單片機模塊 二,SG90舵機 2.1 簡介 舵機只是我們通俗的叫法,它的本質是一個伺服電機&#xf…

react 案例的實現

先看一下如下效果 效果 這是一個 簡單的 效果 左邊是用戶名進行登錄 右邊是一個答題還有遮罩 相信大家還有剛剛創建好的 react 腳手架了,沒有的話可以運行以下命令 creact-react-app 項目名稱 把項目名稱四個字 改成 自己想要的一個名字 最好是英文的在 App.js中去…

python xpath常用代碼功能

1、從文件中讀取html內容,然后xpath加載 with open(FilePath, r,encodingutf8) as file:html file.read() tree etree.HTML(html) 2、基本定位語法 / 從根節點開始選取 /html/div/span // 從任意節點開始選取 //input . 選取當前節點 .…

Web開發:<br>標簽的作用

br作用 介紹基本用法常見用途注意事項使用CSS替代 介紹 在Web開發中&#xff0c;<br> 標簽是一個用于插入換行符的HTML標簽。它是“break”的縮寫&#xff0c;常用于需要在文本中強制換行的地方。<br> 標簽是一個空標簽&#xff0c;這意味著它沒有結束標簽。 基本…

Python小工具—txt轉excel和word

1.txt轉excel import openpyxl# 創建一個新的Excel工作簿 wb = openpyxl.Workbook() sheet = wb.active# 題干和答案的標題 sheet[A1] = 題干 sheet[B1] = 答案# 打開txt文件并讀取內容 with open(xiti.txt, r, encoding=utf-8) as file:lines = file.readlines()# 初始變量 c…

VisualTreeHelper.GetChildrenCount

在WPF&#xff08;Windows Presentation Foundation&#xff09;中&#xff0c;VisualTreeHelper.GetChildrenCount 是一個非常有用的方法&#xff0c;用于獲取指定視覺對象的子元素數量。這對于遍歷復雜的用戶界面樹結構以進行查找、操作或檢查特定元素是非常有幫助的。 Visu…

【java深入學習第7章】用 Spring Boot 和 Java Mail 輕松實現郵件發送功能

引言 在現代的企業應用中&#xff0c;郵件發送是一個非常常見的功能。無論是用戶注冊后的驗證郵件&#xff0c;還是系統通知郵件&#xff0c;郵件服務都扮演著重要的角色。本文將介紹如何在Spring Boot項目中整合Java Mail&#xff0c;實現發送郵件的功能。 一、準備工作 在…

【Ubuntu】安裝使用pyenv - Python版本管理

當我們在Ubuntu上使用Python進行開發的時候&#xff0c;可能會遇到版本不兼容的問題&#xff0c;當然你可以選擇使用apt的方式安裝不同版本的python環境 但是存在一定的問題&#xff1a;安裝不同版本的Python通常不會改變默認的python3命令指向的版本&#xff0c;而且就算你進行…

分布式對象存儲minio

本教程minio 版本&#xff1a;RELEASE.2021-07-*及以上 1. 分布式文件系統應用場景 互聯網海量非結構化數據的存儲需求 電商網站&#xff1a;海量商品圖片視頻網站&#xff1a;海量視頻文件網盤 : 海量文件社交網站&#xff1a;海量圖片 1.1 Minio介紹 MinIO 是一個基于Ap…

ubuntu服務器部署vue springboot前后端分離項目

上傳構建好的vue前端文件 vscode構建vue項目&#xff0c;會生成dist目錄 npm run build在服務器root目錄新建/projects/www目錄&#xff0c;把dist目錄下的所有文件&#xff0c;上傳到此目錄中 上傳ssl證書 上傳ssl證書到/projects目錄中 配置nginx 編輯 /etc/nginx/site…

微服務邊界守衛:Eureka中服務隔離策略的實現

微服務邊界守衛&#xff1a;Eureka中服務隔離策略的實現 在微服務架構中&#xff0c;服務隔離是一項關鍵策略&#xff0c;用于確保服務之間的故障不會相互影響&#xff0c;同時提供更加安全和穩定的運行環境。Eureka作為Netflix開源的服務發現框架&#xff0c;提供了一些機制來…

Java 網絡協議面試題答案整理,最新面試題

TCP和UDP的主要區別是什么? TCP(傳輸控制協議)和UDP(用戶數據報協議)的主要區別在于TCP是面向連接的協議,而UDP是無連接的協議。這導致了它們在數據傳輸方式、可靠性、速度和使用場景方面的不同。 1、連接方式: TCP是面向連接的協議,數據傳輸前需要三次握手建立連接。U…

區塊鏈與云計算的融合:新時代數據安全的挑戰與機遇

隨著信息技術的迅猛發展&#xff0c;云計算和區塊鏈技術作為兩大前沿技術在各自領域內展示出了巨大的潛力。而它們的結合&#xff0c;即區塊鏈與云計算的融合&#xff0c;正在成為數據安全領域的新趨勢。本文將探討這一融合對數據安全帶來的挑戰和機遇&#xff0c;以及其在企業…

平替ChatGPT的多模態智能體來了

在人工智能領域&#xff0c;多模態技術的融合與應用已成為推動技術革新的關鍵。今天&#xff0c;我們用智匠AI實現了完全由國產模型驅動的多模態智能體——智醬v0.1.0&#xff0c;它不僅能夠媲美ChatGPT的多模態能力&#xff0c;更在聯網搜索、圖片識別、畫圖及圖表生成等方面展…

redis原理之底層數據結構(二)-壓縮列表

1.緒論 壓縮列表是redis最底層的結構之一&#xff0c;比如redis中的hash&#xff0c;list在某些場景下使用的都是壓縮列表。接下來就讓我們看看壓縮列表結構究竟是怎樣的。 2.ziplist 2.1 ziplist的組成 在低版本中壓縮列表是由ziplist實現的&#xff0c;我們來看看他的結構…

Stable Diffusion AI繪畫全攻略:從理論到實戰,解鎖創意圖畫的魔法之門

在科技的飛速發展中&#xff0c;Stable Diffusion AI繪畫技術為藝術創作帶來了前所未有的革命性變化。這項技術由CompVis、Stability AI和LAION聯合研發&#xff0c;通過深度學習模型&#xff0c;將文字描述轉化為生動的藝術作品&#xff0c;極大地拓寬了創意與想象的邊界。本文…

大數據面試SQL題-筆記01【運算符、條件查詢、語法順序、表連接】

大數據面試SQL題復習思路一網打盡&#xff01;(文檔見評論區)_嗶哩嗶哩_bilibiliHive SQL 大廠必考常用窗口函數及相關面試題 大數據面試SQL題-筆記01【運算符、條件查詢、語法順序、表連接】大數據面試SQL題-筆記02【...】 目錄 01、力扣網-sql題 1、高頻SQL50題&#xff08…