前言

业务需要从数据库导出数据为excel,并设置成自动化。这里用pandas写的数据导入导出,还算方便。配合crontab + shell脚本使用,每天晚上自动生成excel,然后cp到指定目录。shell脚本比较简单就不展示了,下面是python代码。

PS:如果服务器网络隔离不方便安装依赖,可以用pyinstaller打包成可执行文件。

安装依赖

pip install pandas sqlalchemy pymysql openpyxl -i https://mirrors.aliyun.com/pypi/simple

code

import pandas as pd
from sqlalchemy import create_engine # 创建连接器
engine = create_engine("mysql+pymysql://username:password@ip:port/db_name") def get_yesterday():
"""获取昨天的日期"""
today=datetime.date.today()
oneday=datetime.timedelta(days=1)
yesterday=today-oneday
return yesterday start_time = get_yesterday().isoformat() + " " + "08:00:00"
end_time = get_yesterday().isoformat() + " " + "21:00:00" # SQL语句
# 指定日期时间
sql1 = """
select *
from cdr_2019_copy1
where start_time>="2019-07-02 08:55:00" and end_time < "2019-07-02 09:00:00";
"""
# 动态语句
sql2 = 'select * from cdr where start_time >= "' + start_time + '" and end_time < "' + end_time + '" ;' # 读取数据库数据为dataframe
df1 = pd.read_sql(sql,engine)
print(df1) # 导出为excel文件
filename = get_yesterday().strftime("%Y%m%d") + ".xlsx"
df2.to_excel(filename, index=False)

打包

pyinstaller -F -p C:\software\python\Lib\site-packages hello.py

如果用到了pymysql库,最好指定site-packages的目录位置。

pandas读取mysql并导出为excel的更多相关文章

  1. MySQL要导出成excel的方法

    MySQL 要导出成 excel 文件很简单,执行类似这样的命令:   select * from 某个表 into outfile  'd:/文件名.xls';   上述命令你在服务器上执行,就导在 ...

  2. pandas读取MySql/SqlServer数据 (转)

    在 Anacondas环境中,conda install pymssql ,一直报包冲突,所以采用先在 https://www.lfd.uci.edu/~gohlke/pythonlibs/#nump ...

  3. MySQL数据导出为Excel, json,sql等格式

    MySQL数据经常要导出为Excel, json,sql等格式,通过步骤都很多,麻烦,现在通过Treesoft可以方便的导出你要的数据格式. 1.在线执行SQL,在数据列表中有相应按钮,方便的将数据导 ...

  4. Pandas 读取超过 65536 行的 Excel 文件

    Excel 文件的格式曾经发生过一次变化,在 Excel 2007 以前,使用扩展名为 .xls 格式的文件,这种文件格式是一种特定的二进制格式,最多支持 65,536 行,256 列表格.从 Exc ...

  5. pandas读取MySql/SqlServer数据

    用过的东西总是会忘记,尤其是细节,还是记下来比较靠谱. 读取MySql数据 1 import MySQLdb 2 import pandas as pd 3 4 conn = MySQLdb.conn ...

  6. 利用pandas将numpy数组导出生成excel

    代码 # -*- coding: utf- -*- """ Created on Sun Jun :: @author: Bruce Lau ""&q ...

  7. Python之pandas读取mysql中文乱码问题

    # -*- coding: utf-8 -*- # author:baoshan import pandas as pd import pymysql config = { "host&qu ...

  8. PHP实现MySQL数据导出为EXCEL(CSV格式)

    <?php // 输出Excel文件头,可把user.csv换成你要的文件名 header('Content-Type: application/vnd.ms-excel'); header(' ...

  9. mysql数据导出为excel文件

    select * from  xi_table  into  outfile  ’d:test.xls’

  10. 深入理解pandas读取excel,txt,csv文件等命令

    pandas读取文件官方提供的文档 在使用pandas读取文件之前,必备的内容,必然属于官方文档,官方文档查阅地址 http://pandas.pydata.org/pandas-docs/versi ...

随机推荐

  1. 【Python基础】变量的作用域与global、nonlocal

    在 Python 中,变量的作用域指的是变量可以被访问的范围.Python 中的变量作用域有两种: 局部作用域:变量在函数函数内部的时候,只能在函数内部使用.这样的变量被称为局部变量. 如果在函数内部 ...

  2. 2022-04-24:位集 Bitset 是一种能以紧凑形式存储位的数据结构。 请你实现 Bitset 类。 Bitset(int size) 用 size 个位初始化 Bitset ,所有位都是 0

    2022-04-24:位集 Bitset 是一种能以紧凑形式存储位的数据结构. 请你实现 Bitset 类. Bitset(int size) 用 size 个位初始化 Bitset ,所有位都是 0 ...

  3. golang基础面试题,不完整

    启动流程 Q.go的init函数是什么时候执行的? Q.多个init函数执行顺序能保证吗? Q.go init 的执行顺序,注意是不按导入规则的(这里是编译时按文件名的顺序执行的) Q.init函数能 ...

  4. 2021-06-27:给定一个正数数组arr,代表若干人的体重。再给定一个正数limit,表示所有船共同拥有的载重量。每艘船最多坐两人,且不能超过载重,想让所有的人同时过河,并且用最好的分配方法让船尽

    2021-06-27:给定一个正数数组arr,代表若干人的体重.再给定一个正数limit,表示所有船共同拥有的载重量.每艘船最多坐两人,且不能超过载重,想让所有的人同时过河,并且用最好的分配方法让船尽 ...

  5. elementui中的el-table,(prop对应多个属性)中拼接两个列表字段并展示

    elementui中的el-table,(prop对应多个属性)中拼接两个列表字段并展示 <el-table-column prop="pa_dt_name,pa_duty_name& ...

  6. 《数据结构(C语言版)》严蔚敏代码实现———顺序表

    一.前言 最近在重新学习数据结构啦,网上说这本书挺不错哒,于是我开始啃这本书咯...有一说一,严奶奶的书挺好的,就是有点大量使用指针...需要沉下心来,看一看画一画才能懂,我自己手敲了一遍书上代码,加 ...

  7. Linux 文件系统inode号和备份恢复

    目录 一.inode原理 二.时间类型 三.inode号管理 四.inode实验 五.备份恢复 七.备份实验 一.inode原理 inode只有一个,唯一的,一个文件必须占用一个inode号,但是至少 ...

  8. Mac常用文件解压命令

    tar 解压:tar xvf fileName.tar 压缩:tar cvf fileName.tar directoryName rar 1.安装rar 下载RAR https://www.rarl ...

  9. Python基础 - 解释性语言和编译性语言

    什么是机器语言 计算机是不能理解高级语言,当然也就不能直接执行高级语言了.计算机只能直接理解机器语言,所以任何语言,都必须将其翻译成机器语言,计算机才能运行高级语言编写的程序.   如何把我们写的代码 ...

  10. 提高生产力的最佳免费开源终端:WindTerm

    哈喽,大家好!我是程序视点的小二哥! 前言 自从当上程序员以来使用频率最多的不是vscode,也不是github,而是终端!!! 小师妹使用过很多的终端工具,什么Tabby,Putty,Wrap等等, ...