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

来源:互联网 发布:哪个软件可以看腐剧 编辑:程序博客网 时间:2024/05/16 13:59

下载win32模块

下载链接

连接mysql

import MySQLdbdb_host = ""db_port = 3306db_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,constantsword = Dispatch('Word.Application')word.Visible = 1  #是否在后台运行wordword.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
原创粉丝点击