关闭

python模块win32com 实现数据库表结构自动生成word表格

标签: python数据库word
1035人阅读 评论(0) 收藏 举报
分类:

下载win32模块

下载链接

连接mysql

import MySQLdb
db_host = ""
db_port = 3306
db_name = ""
db_user = ""
db_pwd = ""
db = MySQLdb.connect(host=db_host,port=db_port,user=db_user,passwd=db_pwd,db=db_name,charset="utf8")
cursor = db.cursor()

获取所有表结构

#获取表数据库中所有表和备注
def get_tables(cursor,db_name):
    sql = "select table_name,table_comment from information_schema.tables where table_schema = '" + db_name + "'"
    cursor.execute(sql)
    result = cursor.fetchall()
    tables = {}
    for r in result:
        tables[r[0]] = r[1]
    return tables
#获取表结构
def get_table_desc(cursor,db_name,table_name):
    sql = "select column_name,column_type,column_default,is_nullable,column_comment from information_schema.columns where table_schema = '" + db_name + "' and table_name = '" + table_name + "'" 
    cursor.execute(sql)
    result = cursor.fetchall()
    return result

win32com操作

from win32com.client import Dispatch,constants
word = Dispatch('Word.Application')
word.Visible = 1  #是否在后台运行word
word.DisplayAlerts = 0 #是否显示警告信息
doc = word.Documents.Add() #新增一个文档
r = doc.Range(0,0) #获取一个范围
r.Style.Font.Name = u"Verdana" #设置字体
r.Style.Font.Size = "9" #设置字体大小
r.InsertBefore("\n" + 表描述 + " " + 表名)  #在这个范围前插入文本
table = r.Tables.Add(doc.Range(r.End,r.End),字段数+1,5)  #建一张表格
table.Rows[0].Cells[0].Range.Text = u"列"
table.Rows[0].Cells[1].Range.Text = u"类型"
table.Rows[0].Cells[2].Range.Text = u"默认值"
table.Rows[0].Cells[3].Range.Text = u"是否为空"
table.Rows[0].Cells[4].Range.Text = u"列备注"

完整代码

github地址

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:20650次
    • 积分:380
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:0篇
    • 译文:0篇
    • 评论:4条
    最新评论