把读取sql的结果写入到excel文件
1.利用pandas模块
# encoding: utf-8
import time
import pandas as pd
import pymysql def getrel(sql):
'''
连接mysql数据库,根据条件查询出来我们所需要数据
:return: 根据条件从sql查询出来的数据
'''
conn = pymysql.connect(host='localhost', user='root', password='',
db='db_test', charset='utf8mb4')
cur = conn.cursor()
cur.execute(sql) # 输入要查询的SQL
rel = cur.fetchall()
cur.close()
conn.close()
return rel def getxlsx(rel):
'''
把从数据库中查询出来的数据写入excel文件
:param rel:
:return:
'''
file_name = time.strftime('%Y-%m-%d') + '.xlsx'
dret = pd.DataFrame.from_records(list(rel)) # mysql查询的结果为元组,需要转换为列表
dret.to_excel(file_name, index=False, header=("平台货号", "商品名称", "售价")) # header 指定列名,index 默认为True,写行名 if __name__ == '__main__':
sql = 'select goods_commonid,goods_name,goods_price from mall_goods_common where store_id=110 and set_new_time>1560182400;'
rel = getrel(sql)
getxlsx(rel)
2.使用xlwt模块
import pymysql
import xlwt def get_sel_excel(sql):
'''
连接mysql并把查询出来的数据写入excel表格
:param sql:
:return:
'''
conn = pymysql.connect(
host="localhost",
port=3306,
user="root",
passwd="",
db="db_test",
charset="utf8mb4"
) # 建立游标
cursor = conn.cursor()
print("开始查询表!")
# 执行sql语句
cursor.execute(sql)
# 获取查询到结果
res = cursor.fetchall()
print(res)
w_excel(res) def w_excel(res):
'''
把数据写入excel表格中
:param res:
:return:
'''
book = xlwt.Workbook() # 新建一个excel
sheet = book.add_sheet('vehicle_land') # 新建一个sheet页
title = ['平台货号', '商品名称', '售价']
# 写表头
i = 0
for header in title:
sheet.write(0, i, header)
i += 1 # 写入数据
for row in range(1, len(res)):
for col in range(0, len(res[row])):
sheet.write(row, col, res[row][col])
row += 1
col += 1
book.save('vehicle_land.xls')
print("导出成功!") if __name__ == "__main__":
sql = 'select goods_commonid,goods_name,goods_price from mall_goods_common where store_id=110 and set_new_time>1560182400;'
get_sel_excel(sql)
3.pandas
import pandas as pd
from sqlalchemy import create_engine # 初始化数据库连接,使用pymysql模块
# MySQL的用户:root, 密码:你的密码, 端口:3306,数据库:trustengine = create_engine("mysql+pymysql://root:password@localhost:3306/trust",encoding='utf-8')
# 查询语句,选出testexcel表中的所有数据
sql = """select goods_commonid,goods_name,goods_price from mall_goods_common where store_id=110 and set_new_time>1560182400;""" # read_sql_query的两个参数: sql语句, 数据库连接
df = pd.read_sql_query(sql,con=engine) # 输出testexcel表的查询结果
print(df) # 创建一个writer对象, 里面的参数是一个新的表格文件名
writer = pd.ExcelWriter('mydf.xlsx')
# 利用to_excel()方法将不同的数据框及其对应的sheet名称写入该writer对象中
df.to_excel(writer,sheet_name='test1',index=False)
# 数据写出到excel文件中,最后保存
writer.save()
4.pandas
# coding=utf-8
import pandas as pd
from pandas import DataFrame
from sqlalchemy import create_engine
import time # 开始时间
start = time.time()
# 建立链接
engine = create_engine('mysql+pymysql://root:123@192.168.148.61:3306/ppx_mall_dev_db')
# 查询语句
sql = '''select goods_commonid,goods_name,goods_price from mall_goods_common where store_id=110 and set_new_time>1560182400;'''
# 读取mysql
df = pd.read_sql_query(sql, engine)
print("从mysql中读取数据成功!开始将数据导入到excel表格中...")
# 将读取的数据格式化成DataFrame类型
test_data = DataFrame.from_records(df)
# 将数据写入excle中
test_data.to_excel("E:\\testdata.xlsx", index=False)
print("导出成功!")
# 程序结束时间
end = time.time()
# 打印出程序的运行时间
print('Running time: {} Seconds'.format(end - start))
如需修改表格样式,可参数:https://www.cnblogs.com/phoebechiang/p/10512337.html
把读取sql的结果写入到excel文件的更多相关文章
- R—读取数据(导入csv,txt,excel文件)
导入CSV.TXT文件 read.table函数:read.table函数以数据框的格式读入数据,所以适合读取混合模式的数据,但是要求每列的数据数据类型相同. read.table读取数据非常方便,通 ...
- 用BCP从SQL Server 数据库中导出Excel文件
BCP(Bulk Copy Program)是一种简单高效的数据传输方式在SQL Server中,其他数据传输方式还有SSIS和DTS. 这个程序的主要功能是从数据库中查询Job中指定step的执行信 ...
- C# 读取txt文本内容写入到excel
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- python3+xlwt 读取txt信息并写入到excel中
# coding = utf-8 import os import xlwt import re def readTxt_toExcel(valueList, Pathlist): workbook ...
- 用python读取csv信息并写入新的文件
import csv fo = open("result.txt", "w+") reader = csv.reader(open('test.csv')) f ...
- Aspose.Cell篇章3,设置写入到Excel文件的各种样式及输出
Aspose.Cell的Style.Number设置全部设置 /// <summary> /// 单元格样式编号 /// 0 General General /// 1 Decimal 0 ...
- Python学习笔记_从CSV读取数据写入Excel文件中
本示例特点: 1.读取CSV,写入Excel 2.读取CSV里具体行.具体列,具体行列的值 一.系统环境 1. OS:Win10 64位英文版 2. Python 3.7 3. 使用第三方库:csv. ...
- Java读取、写入、处理Excel文件中的数据(转载)
原文链接 在日常工作中,我们常常会进行文件读写操作,除去我们最常用的纯文本文件读写,更多时候我们需要对Excel中的数据进行读取操作,本文将介绍Excel读写的常用方法,希望对大家学习Java读写Ex ...
- C#读取Excel文件:通过OleDb连接,把excel文件作为数据源来读取
转载于:http://developer.51cto.com/art/200908/142392.htm C#读取Excel文件可以通过直接读取和OleDb连接,把excel文件作为数据源来读取: ...
随机推荐
- MyBatis注解及动态Sql
一.注解实现MyBatis配置 java注解是在jdk1.5版本之后开始加入的,不得不说注解对于我们开发人员来说是个很方便的东西,实现起来也非常的简单,下边我们说一下在MyBatis中使用注解来替换M ...
- mysqli存储过程
<?php$link = mysqli_connect('localhost','root','','chinatupai'); $sql = "call getEmail('000 ...
- [LC] 82. Remove Duplicates from Sorted List II
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numb ...
- Android开发之《安全防护》
逆向 java混淆 so加固 网络传输安全
- linux更改系统ulimit
https://jingyan.baidu.com/article/c85b7a64b65d8c003aac957e.html
- spring给予XML配置的声明式事务
步骤: 1.添加aop.tx命名空间声明: 2.配置事务管理器: 3.配置增强: 4.配置aop 具体xml设置如下: <?xml version="1.0" encodin ...
- PDCA理念融入软件测试
PDCA理念融入软件测试 摘要:软件测试作为软件质量保障的重要手段,PDCA循环是全面质量管理所应遵循的科学程序.本文结合软件测试工作的特点,通过文档规范的方式,将PDCA的理念融入软件测试,提 ...
- 80 remove duplicates from sorted array 2
| 分类 leetcode | Follow up for "Remove Duplicates": What if duplicates are allowed at most ...
- Python——11面向对象编程基础
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- Python列表倒序输出及其效率
Python列表倒序输出及其效率 方法一 使用Python内置函数reversed() for i in reversed(arr): pass reversed返回的是迭代器,所以不用担心内存问题. ...