Python 2.7_初试连接Mysql查询数据导出到exce_20161216

由于每天到公司都需要先执行一遍检测操作,观察数据是否导入完整,今天想到能否自动连接Mysql执行SQL并导出数据,每天到公司直接查看excel文件即可

时间紧,代码以及excel格式还没有调,初次试验,边摸索边学习吧。sql代码那句总想能不能用个变量代替,显得太冗长了

#coding:utf-8
import MySQLdb
import xlsxwriter
import datetime
import os
today = datetime.date.today()
oldfile=‘demo‘+str(today.day-2)+‘.xlsx‘
newfile=‘demo‘+str(today.day-1)+‘.xlsx‘
if os.path.isfile(oldfile) :
    os.remove(oldfile)
else:
    pass

def getdata():
    conn = MySQLdb.connect(host=‘服务器IP地址‘, user=‘root‘, passwd=‘服务器密码‘, db=‘local_db‘, port=3306, charset=‘utf8‘)
    cursor = conn.cursor()
    test_sql = ‘‘‘
        SELECT DATE(订单日期) AS 订单日期,ROUND(SUM(金额)) AS 总计 ,ROUND(SUM(IF(城市="北京",金额,NULL))) AS 北京,ROUND(SUM(IF(城市="成都",金额,NULL))) AS 成都
       ,ROUND(SUM(IF(城市="杭州",金额,NULL))) AS 杭州,ROUND(SUM(IF(城市="济南",金额,NULL))) AS 济南,ROUND(SUM(IF(城市="长春",金额,NULL))) AS 长春
       ,ROUND(SUM(IF(城市="青岛",金额,NULL))) AS 青岛,ROUND(SUM(IF(城市="南京",金额,NULL))) AS 南京,ROUND(SUM(IF(城市="郑州",金额,NULL))) AS 郑州
       ,ROUND(SUM(IF(城市="西安",金额,NULL))) AS 西安
        FROM a003_order
        WHERE 金额>0 AND DATE(订单日期)>=DATE_ADD(CURRENT_DATE,INTERVAL -15 DAY) AND DATE(订单日期)<CURRENT_DATE
        GROUP BY DATE(订单日期)
    ‘‘‘
    count=cursor.execute(test_sql)
    conn.commit()
    data=cursor.fetchall()
    cursor.close()
    conn.close()
    return data

def write_excel():
    data=getdata()
    workbook = xlsxwriter.Workbook(newfile)
    worksheet = workbook.add_worksheet(‘data‘)
    dic1 = {0: "订单日期", 1: "总计", 2: "北京", 3: "成都", 4: "杭州", 5: "济南", 6: "长春", 7: "青岛", 8: "南京", 9: "郑州", 10: "西安"}
    for i in range(0, 11):
        title = dic1[i].decode(‘utf-8‘)
        worksheet.write(0, i, title)
    for x in range(0, 15):
        for y in range(0, 11):
            db = str(data[x][y]).decode(‘utf-8‘)
            worksheet.write(x + 1, y, db)
    workbook.close()
print write_excel()

执行导出到excel是下图 数据已处理 明天执行时候会先删除今天执行生成的文件

时间: 2024-10-03 04:36:42

Python 2.7_初试连接Mysql查询数据导出到exce_20161216的相关文章

MySQL查询数据表中数据记录(包括多表查询)

MySQL查询数据表中数据记录(包括多表查询) MySQL查询数据表中数据记录(包括多表查询) 转自:http://www.baike369.com/content/?id=5355 在MySQL中创建数据库的目的是为了使用其中的数据. 使用select查询语句可以从数据库中把数据查询出来. select语句的语法格式如下: select selection_list // 要查询的内容,选择哪些列 from table_list // 从什么表中查询,从何处选择行 where primary_

mybatis连接mysql查询时报Cannot convert value &#39;0000-00-00 00:00:00&#39; from column 10 to TIMESTAMP

今天在学习mybatis框架的时候遇到了一个问题:查询用户表的时候报 Cannot convert value '0000-00-00 00:00:00' from column 10 to TIMESTAMP 查看自己数据库中有一条数据: 意思是:无法将值“0000-00-00 00:00:00”转换为时间戳. 解决办法: mybatis连接mysql查询时报Cannot convert value '0000-00-00 00:00:00' from column 10 to TIMESTA

MySQL 查询数据:语法及案例剖析

MySQL 查询数据 MySQL 数据库使用SQL SELECT语句来查询数据. 你可以通过 mysql> 命令提示窗口中在数据库中查询数据,或者通过PHP脚本来查询数据. 语法 以下为在MySQL数据库中查询数据通用的 SELECT 语法: SELECT column_name,column_name FROM table_name [WHERE Clause] [LIMIT N][ OFFSET M] 查询语句中你可以使用一个或者多个表,表之间使用逗号(,)分割,并使用WHERE语句来设定查

[记录]MySQL 查询无法导出到文件

很多时候我们需要将数据导出到 xls文件, 然后交给数据分析师分析. 而这个查询数据+导出的动作,理应使用一个有只读权限的用户使用. 但查询某表时: select * from table ,此用户可以读取到数据,但将数据导出到文件时,发现mysql 提示用户权限不足:Access denied for user 'selecter'@'%' . 其实网上也有人遇到同样的问题:[MYSQL]关于执行SELECT * INTO OUTFILE FROM TBL时报ERROR 1045 (28000

mysql的数据导出方法

mysql的数据导出几种方法 从网上找到一些问题是关于如何从MySQL中导出数据,以便用在本地或其它的数据库系统之上:以及 将现有数据导入MySQL数据库中. 数据导出 数据导出主要有以下几种方法: 使用select into outfile "filename"语句 使用mysqldump实用程序 使用select into outfile "filename"语句 可以在mysql的命令行下或在php程序中执行它.我下面以在mysql命令行下为例.在php中使用

python连接mysql获取数据 字符串 获取变量

python脚本中的变量经常会变动,所以考虑写到mysql里面如何获取mysql里面数据作为参数,参考如下脚本: #!/usr/bin/python # -*- coding: utf-8 -*- import MySQLdb # 打开数据库连接 db = MySQLdb.connect("3.12.5.1", "root", "root", "test", charset='utf8') # 使用cursor()方法获取操作

python使用SQLAlchemy模块连接MySQL

ORM技术:Object-Relational Mapping,负责把关系数据库的表结构映射到对象上. 1.安装SQLAlchemy模块 pip install sqlalchemy 2.初始化连接 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 from sqlalchemy import Column, create_engine 5 from sqlalchemy.types import * 6 from sqlalchemy.

python在windows下连接mysql数据库

一,安装MySQL-python python 连接mysql数据库需要 Python interface to Mysql包,包名为 MySQL-python ,PyPI上现在到了1.2.5版本.MySQL-python在windows下是通过.exe文件的installer安装的, 前提是已经安装的python需要写入注册表,参考这篇文章:windows安装python2.7后的注册(registry)问题. 然后开始安装MySQL-python,不过这里有个坑,从PyPI上下载的MySQL

MYSQL 查询数据排序数据和分组数据

在mysql查询过程中,可以对数据进行过滤,也可以对数据进行排序,可以对数据分组,下面分别讲述排序数据和分组数据例子. 1,数据的排序 使用 ORDER BY select * from where id=10 order by id (正序,倒序) 正序 ASC 从小到大 倒序 DESC 从大到小 2,分组数据 GROUP BY HAVING GROUP BY子句通过列或表达式的值将一组行分组为一个小分组的汇总行记录. GROUP BY子句为每个分组返回一行.换句话说,它减少了结果集中的行数.