使用python-docx模块进行word数据操作
安装模块: pip install python-docx
---------实例代码---------------
# -*- coding: utf-8 -*-
"""
    @Author TangJing
    @Date 2021/3/1 12:02
    @Describe 
    @Version 1.0
"""
import pymysql
from docx import Document
# 待导出的数据库信息
pm = {
    # ip地址
    'host': ['192.168.1.132', '192.168.1.132', '192.168.1.151'],
    # 端口号
    'port': [3306, 3306, 3306],
    # 用户名
    'user': ['root', 'root', 'root'],
    # 密码
    'passwd': ['123456', '123456', '123456'],
    # 数据库编码
    'charset': ['utf8', 'utf8', 'utf8'],
    # 数据库名称
    'db': ['smart_checkpoint_cd', 'smart_defense_circle', 'qy_temp'],
    # 存储的文件名称
    'filename': [u'检查站数据库表结构', u'防空圈数据库表结构', u'真我数据库表结构']
}
def connMysql(pa):
    """
    创建数据库连接
    :return: 数据库连接(db)
    """
    # 数据库连接
    try:
        db = pymysql.connect(
            host=pa[0],
            port=int(pa[1]),
            user=pa[2],
            passwd=pa[3].strip(),
            charset=pa[4],
            db=pa[5],
        )
        return db
    except Exception as e:
        print(e)
        return "null"
def query(pm, sql):
    """
    根据sql进行查询,并返回所有查询结果
    :param sql: 查询语句
    :return: 查询结果
    """
    db = connMysql(pm)
    cursor = db.cursor()
    cursor.execute(sql)
    data = cursor.fetchall()
    cursor.close()
    db.close()
    return data
def get_word(document, data, *args, **kwargs):
    """
    插入数据到word中
    :param document: 文档对象
    :param data: 数据包
    :param args: 文档标题(元组类型)
    :param kwargs:
    :return:
    """
    # 加入标题
    document.add_heading(str(args[0] + '-' + args[1]), 1)
    # 增加表格
    table = document.add_table(rows=1, cols=4, style='Medium Grid 1 Accent 1')
    hdr_cells = table.rows[0].cells
    hdr_cells[0].text = '字段名称'
    hdr_cells[1].text = '数据类型'
    hdr_cells[2].text = '是否必填'
    hdr_cells[3].text = '注释'
    # 增加表格行元素
    for filds in data:
        row_cells = table.add_row().cells
        for i in range(4):
            row_cells[i].text = filds[i]
if __name__ == '__main__':
    print('数据导出中...')
    for i in range(len(pm['host'])):
        document = Document()
        document.add_heading(pm['filename'][i], 0)
        sql_table = r"SELECT table_name 表名, table_comment 表说明 FROM information_schema.TABLES WHERE table_schema = '{}' ORDER BY table_name".format(
            pm['db'][i])
        # 查询当前库下所有表信息
        pa = (
            pm['host'][i], pm['port'][i], pm['user'][i], pm['passwd'][i], pm['charset'][i], pm['db'][i],
            pm['filename'][i])
        tables_info = query(pa, sql_table)
        for tab in tables_info:
            sql_fild = "SELECT COLUMN_NAME 字段名称, COLUMN_TYPE 数据类型, IF(IS_NULLABLE='NO','是','否') AS '必填', COLUMN_COMMENT 注释 FROM INFORMATION_SCHEMA.COLUMNS where table_schema ='{}' AND table_name = '{}'".format(
                pm['db'][i], tab[0])
            # 查询当前表下所有字段信息
            filds_info = query(pa, sql_fild)
            # 将当前表字段信息插入到word中
            get_word(document, filds_info, tab[0], tab[1])
        document.save(pm['filename'][i] + '.docx')
    print('导出完成.')