相信很多程序员都书写过数据库设计文档,里面往往需要给出该软件系统涉及到的所有数据库表的信息。如果是采用手动的一个个复制所有表的所有字段信息到word文档的表格中去,那一定是一件非常痛苦的事,费时且费力。上网搜索了一下也没有找到合适的解决方案,以下是我提供的两种解决方案,特此记录与大家分享。
二、解决方案方案一拿到建表语句,利用word自带的文字转表格的功能来处理。具体步骤大家可以自行百度搜索一下,这里不展开说了。但这种方式需要对每一条建表语句做处理,构造成一定的格式才能转,依然不是很方便。
方案二思路:
首先也是拿到建表语句,然后获取每一个字段中想要的信息,构造出一个二维列表来,其中一行代表一个字段,每一列代表了字段的相关信息,比如数据类型、长度等等。然后将这个二维列表写入到一个Excel文件中,最后就可以直接将内容复制粘贴到word的表格中去了。
代码:
【注】这段代码不需要其他第三方库的支持。
ddl = """`ID` bigint(20) NOT NulL auto_INCREMENT COMMENT '主键', `MERCHANT_name` varchar(50) DEFAulT NulL COMMENT '商户名称', `MERCHANT_NO` varchar(32) DEFAulT NulL COMMENT '企业编号', `MERCHANT_ADDRESS` varchar(255) DEFAulT NulL COMMENT '企业地址', `MERCHANT_TYPE` varchar(50) DEFAulT NulL COMMENT '商户类型', `BUSInesS_liCENSES_img` varchar(100) DEFAulT NulL COMMENT '营业执照(企业证明)', `ID_CARD_FRONT_img` varchar(100) DEFAulT NulL COMMENT '法人身份z正面照片', `ID_CARD_AFTER_img` varchar(100) DEFAulT NulL COMMENT '法人身份z反面照片', `USERname` varchar(50) DEFAulT NulL COMMENT '联系人姓名', `MOBILE` varchar(50) DEFAulT NulL COMMENT '联系人手机号(关联统一账号)', `CONTACTS_ADDRESS` varchar(255) DEFAulT NulL COMMENT '联系人地址', `AUDIT_STATUS` varchar(20) DEFAulT NulL COMMENT '审核状态。0-未申请,1-已申请待审核,2-审核通过,3-审核拒绝', `TENANT_ID` bigint(20) DEFAulT NulL COMMENT '租户ID,关联统一用户',"""# 表头result = [['序号', '列名', '数据类型', '长度', '允许空', '说明']]# 将语句按行拆分成一个列表spam = ddl.split('\n')for i in range(len(spam)): s = spam[i] s = s.strip() # 删除字符串两边的空白字符 s = s.replace('NOT NulL auto_INCREMENT COMMENT', '否') # 允许空设为否 s = s.replace('DEFAulT NulL COMMENT', '是') # 允许空设为是 # 长度 s = s.replace('(', ' ') s = s.replace(')', '') # 去除`和'以及行尾的, s = s.replace('`', '') s = s.replace("'", '') s = s.replace(',', '') temp = s.split(' ') # 将每一行再按空格拆分成一个列表 temp.insert(0, str(i + 1)) # 设置序号 result.append(temp) # 构建二维列表# 构建二维列表完毕,准备写入Excel文件中。当然前提是得先创建一个Excel文档,这里我是在D盘下创建了一个名为out.xlsx的Excel文档。output = open('D:\out.xlsx', 'w', enCoding='gbk')for i in range(len(result)): for j in range(len(result[i])): output.write(result[i][j]) output.write('\t') # 相当于Tab一下,换一个单元格 output.write('\n') # 写完一行立马换行output.close()
效果:
三、感悟作为一个程序员要时刻以程序员的思维来思考问题,编程的目的就是为了让繁琐工作自动化。
总结以上是内存溢出为你收集整理的利用Python将数据库建表语句转成表格的形式(可以大幅提高书写数据库设计文档的效率)全部内容,希望文章能够帮你解决利用Python将数据库建表语句转成表格的形式(可以大幅提高书写数据库设计文档的效率)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)