写一个将mysql中ry-vue库中的所有表结构导出到excel,第一个sheet页为所有表,后面的sheet页分别存每个表的别哦结构信息
时间: 2024-03-17 20:44:03 浏览: 63
mysql如何将表结构导出到excel
您好,以下是将 MySQL 中 ry-vue 库中的所有表结构导出到 Excel 的 Python 代码示例,需要使用到 openpyxl 和 pymysql 库:
```python
import pymysql
from openpyxl import Workbook
# MySQL数据库连接信息
mysql_config = {
'host': 'localhost',
'port': 3306,
'user': 'root',
'password': 'root',
'database': 'ry-vue',
'charset': 'utf8mb4'
}
# 创建Excel工作簿
wb = Workbook()
# 获取MySQL数据库连接
db = pymysql.connect(**mysql_config)
# 获取游标对象
cursor = db.cursor()
# 查询数据库中所有表名
table_names_sql = "SELECT table_name FROM information_schema.tables WHERE table_schema='%s' AND table_type='BASE TABLE'" % mysql_config['database']
cursor.execute(table_names_sql)
table_names = [row[0] for row in cursor.fetchall()]
# 在Excel工作簿中创建一个名为“所有表”的Sheet页
all_tables_sheet = wb.create_sheet('所有表', index=0)
# 在“所有表”Sheet页中写入所有表名
for i, table_name in enumerate(table_names):
all_tables_sheet.cell(row=i+1, column=1, value=table_name)
# 查询表结构信息
table_columns_sql = "SHOW FULL COLUMNS FROM %s" % table_name
cursor.execute(table_columns_sql)
table_columns = cursor.fetchall()
# 在Excel工作簿中创建一个名为当前表名的Sheet页
table_sheet = wb.create_sheet(table_name, index=i+1)
# 在当前表的Sheet页中写入表结构信息
for j, column in enumerate(table_columns):
for k, field in enumerate(column):
table_sheet.cell(row=j+1, column=k+1, value=str(field))
# 将Excel工作簿保存到本地文件中
wb.save('ry-vue-tables.xlsx')
# 关闭游标对象和数据库连接
cursor.close()
db.close()
```
以上代码会将 MySQL 中 ry-vue 库中的所有表结构导出到名为“ry-vue-tables.xlsx”的 Excel 文件中,其中第一个 Sheet 页为所有表名,后面的 Sheet 页分别存储每个表的结构信息。需要注意的是,以上代码只是一个简单的示例,可能需要根据实际情况进行修改和优化。
阅读全文