python 3.7 生成数据库文档

开发阶段数据库总是有变动,开发人员需要维护文档给相关人员使用,故编写一个脚本自动生成数据库文档

生成的excel如下

import cx_Oracle
import os
from openpyxl import load_workbook
from openpyxl import Workbook
from openpyxl.styles import PatternFill

os.environ[‘NLS_LANG‘] = ‘SIMPLIFIED CHINESE_CHINA.UTF8‘

tableSql = "select * from user_tab_comments"

tableColumnSql = "SELECT CC.column_name,CC.data_type,CC.data_length,CC.default_length,CM.comments "                  "FROM USER_TAB_COLUMNS cc INNER JOIN USER_COL_COMMENTS cm ON cc.column_name = cm.column_name  "                  "WHERE CC.table_name =‘%s‘ AND CM.table_name =‘%s‘ ORDER BY CC.column_id"
‘‘‘
保存数据字典到指定./space目录下
space->环境(test,uat,pro)
usr->用户名
pwd->密码
host->主机名
sid->sid
‘‘‘

def saveDbSchema(space, usr, pwd, host, sid):
    isExsit = os.path.exists(space)
    if not isExsit:
        os.makedirs(space)
        print("create dir->%s" % (space))

    constr = "%s/%[email protected]%s/%s" % (usr, pwd, host, sid)
    print(constr)
    conn = cx_Oracle.connect(constr)
    cursor = conn.cursor()

    cursor.execute(tableSql)

    datas = cursor.fetchall()

    wb = Workbook()
    # load_workbook("mergeData.xlsx")
    title = ["字段名", "字段类型", "字段长度", "默认值", "备注"]
    ws_inx = wb["Sheet"]
    ws_inx.append(["表名", "备注", "链接"])
    ws_inx.column_dimensions[‘A‘].width = 30.0
    ws_inx.column_dimensions[‘B‘].width = 25.0
    ws_inx.column_dimensions[‘C‘].width = 10.0
    for item in datas:
        sql = tableColumnSql % (item[0], item[0])
        cursor.execute(sql)
        data = cursor.fetchall()
        ws = wb.create_sheet(item[0])
        ws.column_dimensions[‘A‘].width = 20.0
        ws.column_dimensions[‘B‘].width = 12.0
        ws.column_dimensions[‘C‘].width = 10.0
        ws.column_dimensions[‘D‘].width = 20.0
        ws.column_dimensions[‘E‘].width = 30.0
        ws.append(["表名", item[2], None, "返回"])
        ws.cell(1, 4).hyperlink = "#Sheet!A1"
        ws.cell(1, 4).fill = PatternFill("solid", fgColor="1874CD")
        ws.append(title)
        for inx, val in enumerate(data):
            ws.append([val[0], val[1], val[2], val[3], val[4]])
        ws_inx.append([item[0], str(item[2]), "链接"])
        ws_inx.cell(ws_inx.max_row, ws_inx.max_column).hyperlink = "#‘%s‘!A1" % (item[0])
    wb.save("./%s/%s.xlsx" % (space, usr))

    print("ok")

原文地址:https://www.cnblogs.com/lobin/p/10178887.html

时间: 2024-10-08 06:46:35

python 3.7 生成数据库文档的相关文章

powerdesigner生成数据库文档

1.报告(report)--->new report 2. 3.双击之后,节点到右边,此时就是要生成的全部元素,可以根据情况删除项,只保留要生成在文档里的项 4.然后右键留下的项,弹出对话框 5.此时选择数据表要导出文档的列的属性 6.然后  报告----->general html(general rtf)就可以了,rtf可以转化成word格式的

使用存储过程生成数据库文档

USE [MeiDongPay] GO /****** Object: StoredProcedure [dbo].[RenderTableDocument] Script Date: 09/12/2016 10:39:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: <wp> -- Description

sqlserver 脚本生成数据库文档

SELECT       (case when a.colorder=1 then d.name else '' end)表名,       --a.colorder 字段序号,       a.name 字段名,       --(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) 标识,       --(case when (SELECT count(*)       --FROM sysob

【C#附源码】数据库文档生成工具支持(Excel+Html)

[2015] 很多时候,我们在生成数据库文档时,使用某些工具,可效果总不理想,不是内容不详细,就是表现效果一般般.很多还是word.html的.看着真是别扭.本人习惯用Excel,所以闲暇时,就简单的编写了数据库文档生成工具,供大家交流学习之用,与程序员共勉.     该工具为C#控制台,以NPOI为基础,操作Excel.简单方便,简单配置.两次回车,OK!即可生成清晰的数据库文档.另外,支持生成HTML文档.源码大小7MB,OS上传不了,放到百度云盘里了:http://pan.baidu.co

利用sphinx为python项目生成API文档

sphinx可以根据python的注释生成可以查找的api文档,简单记录了下步骤 1:安装 pip install -U Sphinx 2:在需要生成文档的.py文件目录下执行sphinx-apidoc -F -o ./doc ./domain/model/ 在当前目录下新建doc目录,api文档的文件夹就在此目录下,./domain/model/ 表示需要生成api文档的目录. 3:进入doc目录 修改conf.py文件 设置代码路径为sys.path.insert(0, os.path.ab

Python sphinx-build在Windows系统中生成Html文档

看到前同事发布的"Markdown/reST 文档发布流水线"基于TFS.Docker.Azure等工具和平台进行文档发布的介绍说明,不得不在心中暗暗竖起大拇指.这套模式,实现了文档编写后版本管理.发布.存档.分享的高度自动化,它不仅仅可以应用在文章中介绍的技术文档发布模式,同样也适用于我们大多数web.app等软件生命周期过程模式.DevOps一词的盛行,绝对不是软件行业中又一个流行语的鼓吹和炒作,而是软件过程的一种发展和进化.结合自动化平台.Docker.云平台等优秀技术和产品.软

POI加dom4j将数据库的数据按一定格式生成word文档

一:需求:将从数据库查处来的数据,生成word文档,并有固定的格式.(dom4j的jar包+poi的jar包) 二:解决:(1)先建立固定格式的word文档(2007版本以上),另存成为xml文件,作为模板.(修改xml节点,添加属性,用于标示要填固定数据的节点) (2)dom4j解析模板xml文件,将文件读入内存,并把数据库数据写入内存的xml模型中 (3)利用poi将内存中的含有数据库内容的xml模型转换成word内存模型,利用输出流输出word文档 三:DEMO [1]模板的word文档

生成表结构数据库文档sql语句

CREATE PROCEDURE [dbo].[生成表结构数据库文档]ASBEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; -- Insert statements for procedure here SELECT 表名 = Case When A.colorder=1 Then D.name Else ''

从数据库中取出数据,使用freemarker生成word文档

这个星期做数据字典功能,有一项任务就是将数据库中的每个表的字段导出,生成word文档,在综合比较网上各种技术之后,参照csdn上骆豪的博客完成了任务. 骆昊的链接:http://blog.csdn.net/jackfrued/article/details/39449021 首先打开word文档,建立自己所需要的模板,然后将word保存为XML的格式,这里可能出现的一个问题就是需要填入的内容放上${}占位符的时候可能会出现字符分离的情况,所以建议先将需要用${}占位符的地方用中文写在word里然