博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql数据库导出xls-自定义
阅读量:6697 次
发布时间:2019-06-25

本文共 1878 字,大约阅读时间需要 6 分钟。

使用python编写脚本,一键式导出sql语句执行结果到xls表格中,每条语句结果一个标签页

 v1,本地运行

文件列表:

bm.py  主程序

bm_sqlcon.py   数据库连接,查询模块

sql.py    初始化数据库查询语句

xls.py    写入xls文件模块

需要安装第三方模块

easy_install mysql-connector-python pip install xlwt 实现了结果格式转换,时长计算使用百纳秒到小时:分:秒:帧。设置单元格日期格式,转换数字为汉字说明,设置列宽。 语句未做交互 def s_t(bnm):     bnm=int(bnm)     miao=bnm//10**7     #print(miao)     fen=miao//60     xs=miao//3600     dual=(bnm/10**7-miao)*25     dual=round(dual)     miao=miao%60     fen=fen%60     fh=str(xs)+':'+str(fen)+':'+str(miao)+':'+str(dual)     return fh v2 版本可以考虑增加网页交互 学到的知识: 1、主函数逻辑: ==》获取查询sql语句,存入字典中。可以使用key为中文的字典,后期直接轮询取key赋值给标签 ==》轮询语句字典,取出语句传递给sqlcon模块,执行查询,返回结果是一个包含元组的列表。元组是行信息 ==》结果写入字典,进行数据预处理,具体处理调用不同函数,此时遇到一个问题是元组内容是不可变,的所以需要先转成列表,修改完后再转成元组。(如果就用列表应该也可以) ==》传给xls模块,设定单元格属性,加边框,设置列宽,显示方式,写入xls。 2、处理字典数据时,遇到变量类型问题,因为python3是隐式转换格式的,函数传递的数字型的字符串被识别成了数字, 在if语句中与字典中的数字型字符串进行比较判断时,无法通过。最后通过强制转换类型的方式解决。     stat_dict={'20':'编目中','40':'审核中','1000':'完成'}     for k in stat_dict:         #print(key,k,stat_dict[k])         if(k==str(key)):             return stat_dict[k] 包括上面的数字转换函数,也涉及到了类型转换,数字拼接字符串 3、处理字典数据时,因涉及到各种取值 ,各种运算。所以对字典值进行了赋值给另一个变量, 因为字典的值是列表这样的高级数据结构,在直接赋值时,采用的为浅copy方式,结果修改变量的值,原始字典竟然会变化。 如此,猜测浅copy的变量,可以向指针一样使用。 4、处理查询结果时,因为返回的只有结果,没有列名,需要手动增加列名。构造一个含有列名元组的列表,和数据列表进行+的拼接,非常方便。 列名的获取,本来是通过游标的cursor.description获取的,结果获取结果是元组,还有其他信息,这到还能处理, 但是查询语句中带有公式时count(*)这种,就很麻烦,取出的值不是字符串,而是字节码。经过折腾还是没有能统一处理,最后手动构建了列名列表实现 5、数据库操作,可以放到try: except:语句,进行错误处理。而且数据的连接信息,可以写到字典中,通过可变参数传递调用。     try:         conn = mysql.connector.connect(**config)     except mysql.connector.Error as e:         print('open database failed !{} '.format(e)) 6、字典初始化时,可以在{中}每个键值对写一行,不需要特殊换行符\ 7、分模块编程时,可以在模块中写入test()函数,写入调试数据,对模块进行调试,引入时,这些是不会执行的 8、可以在语句中加入print()函数,输出变量的值,来判断逻辑错误,测试好后可以#注释掉,更换测试条件可以再复制一份,尽量保留测试记录 其他知识: 打开文件时,可以是用with  as  方式,进行错误判断 涉及文件操作open的都写入字符编码,防止中文乱码

转载于:https://www.cnblogs.com/mathprice/p/9155054.html

你可能感兴趣的文章
告诉你银行在年底为存储做的小动作
查看>>
函数中的apply,call入门介绍
查看>>
XCode10 swift4.2 适配遇到的坑
查看>>
分布式之数据库和缓存双写一致性方案解析
查看>>
PHP 完整实战23种设计模式
查看>>
spring cloud微服务分布式云架构 - Spring Cloud集成项目简介
查看>>
时时流量查看工具-ifsta,nload,iftop
查看>>
MySQL水平分区代理Spock Proxy(一)
查看>>
PLSQL DEVELOPER 使用技巧
查看>>
ansible常用模块
查看>>
我的友情链接
查看>>
远程客户端连接MysqL数据库太慢解决方案
查看>>
SQL Server -- SQLserver 存储过程执行错误记录到表
查看>>
POLYCOM RMX2000 激活与初始化 信令板卡初始化
查看>>
TCP协议的特性
查看>>
判断该网页是在什么设备打开。
查看>>
corosync+openais+pacemaker+web
查看>>
MAC机路由管理
查看>>
Linux—程序包安装与管理
查看>>
PXE装机+kickstart无人值守安装
查看>>