python实现自动从mysql数据库取指定数据记录到excel中-新建、追加

xlsxwriter,openpyxl,pandas 模块都可以实现往excel中写入数据,但是为了更简单方便的实现我的需求,选择将三种结合使用。
#!/usr/bin/env python3
# -*-coding: utf-8 -*-
# @Time:2019/12/26 16:55
# @Author: WSN
import pandas as pd
import pymysql, openpyxl, os, xlsxwriter
# 设定excel文件名称
version = ‘V1.4.6‘
filename = ‘%s版本UAT自动化运维平台工单记录.xlsx‘ % (version)
os.chdir(‘C:\\a_myfile‘)# 连接mysql数据库
settings = {"host": "192.168.7.180",
            "database": "autosql_prod2",
            "user": "root",
            "password": "123456",
            "port": 3306,
            "charset": "utf8"}
db = pymysql.connect(host=settings[‘host‘], database=settings[‘database‘], user=settings[‘user‘],
                     password=settings[‘password‘], port=settings[‘port‘], charset=settings[‘charset‘])
sql = ‘SELECT b.WFI_WORKNO 工单号,b.WFI_VERSIONNO 版本号,b.WFI_APPCODE 应用,DATE_FORMAT(DATE_SUB(a.WORKINFO_UPDATETIME, INTERVAL 0 MONTH),‘       ‘\‘%Y-%m-%d\‘) 日期,b.WFI_EXECUTEENV 执行环境,b.WFI_FILENAME 脚本名称 FROM t_as_workfileinfo b,t_as_workinfo a ‘       ‘WHERE b.`WFI_WORKNO` = a.WORKINFO_WORKNO AND a.WORKINFO_WORKSTATE = \‘07\‘‘       ‘and b.WFI_VERSIONNO=\‘V1.4.7\‘ order by b.WFI_WORKNO ‘
# 将SQL返回结果存储为dataFrame格式data = pd.read_sql(sql, db)# rownu为查询结果的条数
rownu = data.index.stop 

# 追加数据到已有excel文件中
def insertexcel():
    workbook = openpyxl.load_workbook(filename)
    sheet = workbook[‘Sheet1‘]
    for i in range(0, rownu):
        sheet.append(list(data.values[i]))
    workbook.save(‘%s版本UAT自动化运维平台工单记录.xlsx‘ % (version))
    workbook.close()

# 新建excel文件中,并设置列表头格式
def newexcel():
    workbook = xlsxwriter.Workbook(filename)
    sheet = workbook.add_worksheet()
    sheet.set_column(‘A:A‘, 30)
    sheet.set_column(‘B:E‘, 11)
    sheet.set_column(‘F:F‘, 75)
    heading = list(data)
    headbold = workbook.add_format({‘bold‘: True,
                                    ‘align‘: ‘center‘,
                                    ‘border‘: 1,
                                    ‘bg_color‘: ‘#D3D3D3‘})
    sheet.write_row(‘A1‘, heading, headbold)
    for i in range(0, rownu):
        sheet.write_row(‘A%s‘ % (i + 2), data.values[i])
    workbook.close()

# 判断文件是否存在并运行相应函数
if os.path.exists(filename):
    print(‘----文件已存在,将追加数据到%s----‘ % filename)
    insertexcel()
else:
    print(‘----文件不存在,将新建文件%s----‘ % filename)
    newexcel()

print(‘数据加载完毕!‘)

原文地址:https://www.cnblogs.com/wsn-only/p/12132618.html

时间: 2024-10-12 12:31:28

python实现自动从mysql数据库取指定数据记录到excel中-新建、追加的相关文章

从mysql数据库取一条记录里的某个字段的值

<?php $link = mysqli_connect("localhost","root","root","dbname"); //连接数据库 $sql = "select field from dbname  limit 1"; $ressql = mysqli_query($link,$sql);//执行sql $res = $ressql->fetch_object()->fie

CentOS下每天自动备份mysql数据库

每天自动备份mysql数据库的脚本,并且自动发送到你指定的邮箱面,这样vpser再也不会为丢失数据烦恼啦. mysqldump -uuser -ppassword –databases db1 db2 db3 > /home/website/backups/databackup.sql tar zcf /home/website/backups/databackup.sql.tar.gz /home/website/backups/ echo "主题:数据库备份" |mutt  

自动备份mysql数据库并发送到Email方法

一个博客,一个网站最重要的就是数据库,所以经常备份数据是必须的.尽管 WordPress 有定时备份数据的插件,但只能备份当前的博客,不够灵活.适合个人小小博客,对于一些网站来说,就不适合了.现在很多人都拥有多个网站,showfom 同学就有几个网站.每个网站都装个插件就比较麻烦了.况且不是每个网站都是 WordPress 的 . 所以写了个自动备份mysql数据库的脚本,再加上gmail这个G级邮箱,备份多少数据都可以了...下面是代码: mysqldump -uuser -ppassword

一个自动备份mysql数据库的bat文件内容

自动备份mysql数据库,并已当前的日期时间为目录 copy过去, xcopy将近15年没有用dos命令,还是这么亲切 另 本方法是备份数据库文件,不是dump导出,然后再计划任务中使用,我用的是wamp,其他的环境类似的改改即可 ====dbback.bat============ NET STOP wampapacheNET STOP wampmysqldset /a t1=(1%time:~0,2%-100)*1if %t1% LSS 10 set t1=0%t1%set ymd_hms=

Shell脚本-----自动备份Mysql数据库

脚本的整体思路 1.定义需要的变量 2.利用for循环备份需要备份的库,并以库名-当天日期.sql命名,并记录相关日志 3.建立备份当天的日期的目录,向备份的Sql文件移动到该目录 4.压缩打包该目录,以节省空间,打包成功后删除该目录 5.备份目录只备份七天的数据库,第八天删除第一天的备份,目录只会存在连续七天的备份文件 6.查找备份目录下的.log日志文件,超过七天的删除 #!/bin/bash mysql_bin=/usr/local/tdoa/mysql/bin/mysqldump use

从MYSQL数据库查出指定格式的日期

1.用SQL语言控制: 格式如下: select DATE_FORMAT(t.startTime,"%Y-%m-%d %H:%i") AS startTime, DATE_FORMAT(t.endTime,"%Y-%m-%d %H:%i") AS endTime from table 输出格式为:YYYY-mm-dd HH:ss format字符串: %M 月名字(January--December) %W 星期名字(Sunday--Saturday) %D 有英语

.net安装包自动安装Mysql数据库

原文:.net安装包自动安装Mysql数据库 在制作.Net安装包的时候,如果项目有用到数据库,怎么能够把数据库打包安装呢?网上已经有很多自动安装Sql Server数据库的例子,但是自动安装mysql的例子似乎不多.本文就介绍一下如何在.Net安装包中自动安装Mysql数据库. 最终我们要实现的效果是,部署.Net桌面应用程序时,能够一键自动安装应用程序以及附带的MySql数据库,并初始化数据库. 实现步骤如下: 1.准备一个干净的MySql安装包 mysql本身是开源的,安装完mysql数据

十二、Python高级功能之Mysql数据库模块

Python高级功能之Mysql数据库模块 安装python mysql组件 # yum -y install MySQL-python.x86_64 以下根据实例来说明: >>> import MySQLdb >>> conn = MySQLdb.connect(user='root',passwd='2wdc%RDX',host='localhost')  #连接数据库(到服务器的连接) >>> cur = conn.cursor()  # 创建游

Linux 每天自动备份mysql数据库的方法

Linux 每天自动备份mysql数据库的方法 作者: 字体:[增加 减小] 类型:转载 linux下为了安全有时候需要自动备份mysql数据库,下面是具体的实现步骤. /usr/bin为mysql安装目录 建备份文件夹: mkdir mysql_data_bak 建脚本文件: touch autobackupmysql.sh 打开文件 vi autobackupmysql.sh 在脚本中加入如下内容: filename=`date +%Y%m%d` /usr/bin/mysqldump -op