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

原创 2016年08月29日 13:56:46

下载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地址

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Python实现mysql数据输出到word表格中(源码)

# -*- coding: utf-8 -*-  import os,sys,win32com import MySQLdb,datetime import win32com.client ...

python解析html提取数据,并生成word文档

今天试着用ptyhon抓取一下网页上的

python如何处理解析word文档doc docx , python-docx,python-docx2txt,zipfile

关于python如何处理word文档doc docx,可以关注 python-docx 和 python-docx2txt 两个项目,python-docx复杂一些,适合创建文档,python-doc...

JDBC获取数据库的元数据信息

package cn.itcast.jdbc;import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql...

自动生成数据库表设计(一)之获取JDBC获取元数据

最近项目快了验收,那么接下来就是写一些比较烦人的文档,在写数据库设计文档时,到了详细设计这一块有点尴尬了,每张表,没个字段都要写上去,由于前期没有整理,所以这个工作量还是很大,我查看了我们的数据库发现...

自动生成数据库表设计(二)之Freemarker的基本使用

最近项目快了验收,那么接下来就是写一些比较烦人的文档,在写数据库设计文档时,到了详细设计这一块有点尴尬了,每张表,没个字段都要写上去,由于前期没有整理,所以这个工作量还是很大,我查看了我们的数据库发现...

自动生成数据库表设计(三)之制作word模版

最近项目快了验收,那么接下来就是写一些比较烦人的文档,在写数据库设计文档时,到了详细设计这一块有点尴尬了,每张表,没个字段都要写上去,由于前期没有整理,所以这个工作量还是很大,我查看了我们的数据库发现...

wxWidgets 界面编辑入门

最近一直在找一个跨平台的GUI库,发现wxWidgets是一个很不错的选择。个人认为的优点有:1. 类似于MFC, 容易上手2. 在不同平台上的展现是Native的,不像QT什么的知识模拟的。3. 界...

Python学习笔记(28)-Python读取word文本

一,简介Python可以利用python-docx模块处理word文档,处理方式是面向对象的。也就是说python-docx模块会把word文档,文档中的段落、文本、字体等都看做对象,对对象进行处理就...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)