当前位置:   article > 正文

python-MySQL数据库建表语句(需要连接数据库)转存为Excel文档-工作小记_建表语句 如何转换为excle

建表语句 如何转换为excle

将create table XXXXXX 转为指定Excel文档。该脚本适用于数据库表结构本地文档记录

呈现效果

 代码

  1. # -*- coding:utf-8 -*-
  2. # @Time : 2023/8/2 15:14
  3. # @Author: 水兵没月
  4. # @File : MySQL建表_2_excel.py
  5. import re
  6. import mysql.connector
  7. import pandas as pd
  8. db = '库名'
  9. mydb = mysql.connector.connect(host="连接IP", user="用户名", password="密码",port='端口',database=db)
  10. def con_mysql():
  11. mycursor = mydb.cursor()
  12. return mycursor
  13. def clo_mysql():
  14. mydb.close()
  15. def sel_mysql(table, db):
  16. mycursor = con_mysql()
  17. sel_info1 = "select * from information_schema.COLUMNS where TABLE_SCHEMA = '{}' and TABLE_NAME = '{}'".format(db, table)
  18. sel_info2 = "show create table {}".format(table)
  19. # sel_info = "desc {}".format(table)
  20. mycursor.execute(sel_info2)
  21. myresult = mycursor.fetchall()[0][-1]
  22. formnamezh = ''.join(re.findall(r"CHARSET=.*COMMENT='(.*)'", myresult))
  23. mycursor.execute(sel_info1)
  24. myresult = mycursor.fetchall()
  25. temp_list = []
  26. for ms in myresult:
  27. temp = []
  28. dbname = ms[1] # 库名
  29. formname = ms[2] # 表名
  30. nameeg = ms[3] # 字段英文名
  31. xuhao = ms[4] # 序号排序
  32. defaultzhi = ms[5] # 是否默认为为空 MULL or ''
  33. iskong = 'N' if ms[6] == 'NO' else 'Y'# 是否默认为为空 NOT or YES
  34. namezh = ms[-2] # 字段中文名
  35. length = ''.join(re.findall(r'\((\d+)\)', ms[-6])) # 类型名+长度
  36. typename = re.findall(r'(.*)\(', ms[-6])[0] if re.findall(r'(.*)\(', ms[-6]) else ms[-6]
  37. PRI = 'Y' if 'PRI' == ms[-5] else 'N'
  38. remark = ms[-5] # 存放主键索引等标注
  39. temp = [formname,formnamezh,xuhao,nameeg, namezh, typename,length, '', remark,iskong,PRI]
  40. temp_list.append(temp)
  41. clo_mysql()
  42. return temp_list
  43. def write_excel(data, table):
  44. # 要写入Excel的数据
  45. # 创建一个Pandas DataFrame
  46. df = pd.DataFrame(data, columns=['数据表英文名称', '数据表中文名称', '表内字段序号', '数据项英文名称', '数据项中文名称', '数据类型', '数据最大长度', '小数位长度', '数据格式说明', '是否可为空', '是否为主键'])
  47. # 创建一个新的Excel文件
  48. writer = pd.ExcelWriter('./{}.xlsx'.format(table), engine='openpyxl')
  49. # 在指定工作表中写入数据
  50. df.to_excel(writer, sheet_name='Sheet1', index=False)
  51. # 关闭Excel文件
  52. writer.save()
  53. if __name__ == '__main__':
  54. table = '表名'
  55. data = sel_mysql(table, db)
  56. write_excel(data, table)

仅作为笔记记录,如有问题请各位大佬来指导 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/458363
推荐阅读
相关标签
  

闽ICP备14008679号