使用Python将MySQL查询结果导出到Excel(xlsxwriter)
在实际工作中,我们经常需要将数据库中的数据导出到Excel表格中进行进一步的分析和处理。Python中的pymysql和xlsxwriter库提供了很好的解决方案,使得这一过程变得简单而高效。
建立数据库连接
首先,我们需要使用pymysql库来建立与MySQL数据库的连接,并指定要连接的数据库名称、用户名和密码。
import pymysql connection = pymysql.connect(
host='localhost',
user='root',
password='123456',
database='caiwu'
)
编写SQL查询语句
接下来,我们可以编写需要执行的SQL查询语句,以获取所需的数据。
query = "SELECT * FROM report_品名"
创建Excel文件对象和工作表对象
使用xlsxwriter库,我们可以创建一个新的Excel文件和工作表对象,准备将数据写入其中。
import xlsxwriter
workbook = xlsxwriter.Workbook('output.xlsx')
worksheet = workbook.add_worksheet()
创建游标对象并执行SQL查询
创建游标对象,执行SQL查询语句,并获取查询结果的列名。
cursor = connection.cursor()
cursor.execute(query) column_names = [i[0] for i in cursor.description]
将查询结果写入Excel文件
遍历查询结果,并将数据写入到Excel文件中。在此过程中,我们还可以对时间字段进行格式化处理。
import datetime data = cursor.fetchall() for col_index, col_name in enumerate(column_names):
worksheet.write(0, col_index, col_name) for row_index, row_data in enumerate(data):
for col_index, col_data in enumerate(row_data):
if isinstance(col_data, datetime.datetime):
col_data = col_data.strftime("%Y-%m-%d %H:%M:%S")
worksheet.write(row_index + 1, col_index, col_data)
关闭游标、数据库连接和Excel文件对象
在数据导出完成后,记得关闭游标、数据库连接和Excel文件对象,释放资源。
cursor.close()
connection.close()
workbook.close()
总结
通过以上步骤,我们使用Python成功地将MySQL查询结果导出到Excel文件中。这种方法不仅简单方便,而且还可以轻松实现定制化的数据处理和格式化操作。
完整代码:
import pymysql
import xlsxwriter
import datetime # 建立数据库连接
connection = pymysql.connect(
host='localhost',
user='root',
password='123456',
database='caiwu'
) # 编写SQL查询语句
query = "SELECT * FROM report_品名" # 创建Excel文件对象
workbook = xlsxwriter.Workbook('output2.xlsx') # 创建Excel工作表对象
worksheet = workbook.add_worksheet() # 创建游标对象
cursor = connection.cursor() # 执行SQL查询
cursor.execute(query) # 获取查询结果的列名
column_names = [i[0] for i in cursor.description] # 将列名写入Excel文件的第一行
for col_index, col_name in enumerate(column_names):
worksheet.write(0, col_index, col_name) # 获取查询结果中的数据
data = cursor.fetchall() # 将数据写入Excel文件中
for row_index, row_data in enumerate(data):
for col_index, col_data in enumerate(row_data):
# 判断数据类型是否为时间类型
if isinstance(col_data, datetime.datetime):
col_data = col_data.strftime("%Y-%m-%d %H:%M:%S") # 将时间字段转换为字符串
worksheet.write(row_index + 1, col_index, col_data) # 关闭游标对象
cursor.close() # 关闭数据库连接
connection.close() # 关闭Excel文件对象
workbook.close()
使用Python将MySQL查询结果导出到Excel(xlsxwriter)的更多相关文章
- 将MySQL查询结果导出到Excel
总结将mysql的查询结果导出到文件的方法 总结 使用命令 select user, host, password from mysql.user into outfile '/tmp/user.xl ...
- Mysql查询结果导出为Excel的几种方法
本文地址:http://www.cnblogs.com/qiaoyihang/p/6398673.html 具体原文找不到了,此篇是借鉴门户的一篇文章 方法一:查询语句直接输出语法格式: Exampl ...
- python 作业 用python实现 mysql查询结果导出带列名
1 import pandas as pd 2 import numpy as np 3 import matplotlib as mpl 4 import matplotlib.pyplot as ...
- Mysql查询结果导出Excel表
Mysql查询结果导出Excel表: 一句转换方式:$ mysql -uops -p'GCNgH000KP' dtbs -e 'select * from t_proxy__record;' --de ...
- atitit.导出excel的设计----查询结果 导出为excel的实现java .net php 总结
atitit.导出excel的设计----查询结果 导出为excel的实现java .net php 总结 1. 基本的流程 查询获得list 读取jsp的table获得标题and 字段的map to ...
- Python 2.7_初试连接Mysql查询数据导出到excel_20161216
由于每天到公司都需要先执行一遍检测操作,观察数据是否导入完整,今天想到能否自动连接Mysql执行SQL并导出数据,每天到公司直接查看excel文件即可 时间紧,代码初次试验,边摸索边学习吧. xlsx ...
- [记录]MySQL 查询无法导出到文件
很多时候我们需要将数据导出到 xls文件, 然后交给数据分析师分析. 而这个查询数据+导出的动作,理应使用一个有只读权限的用户使用. 但查询某表时: select * from table ,此用户可 ...
- 使用Connector / Python连接MySQL/查询数据
使用Connector / Python连接MySQL connect()构造函数创建到MySQL服务器的连接并返回一个 MySQLConnection对象 在python中有以下几种方法可以连接到M ...
- 利用python将mysql中的数据导入excel
Python对Excel的读写主要有xlrd.xlwt.xlutils.openpyxl.xlsxwriter几种. 如下分别利用xlwt和openpyxl将mysql数据库中查询的数据保存到exce ...
- SqlServer 行转列 查询 并 导出 到 Excel 中 自动换行
SELECT A.Hawb, ( SELECT GoodsNameCn+char(10) FROM HawbBody hl WHERE hl.Hawb=A.Hawb FOR XML PATH('') ...
随机推荐
- Nginx配置网站默认https
Nginx配置网站默认https 一.安装Nginx yum install nginx -y 二.修改nginx.conf vim /etc/nginx/nginx.conf 配置80转443 配置 ...
- 洛谷 T356695 文字处理软件(重置版)
很简单了啊! 说普及- 我都不信 作者(也就是我)链接:https://www.luogu.com.cn/problem/T356695 好好想想!!!! 题目! 文字处理软件(重置版) 题目背景 A ...
- pandas 根据内容匹配并获取索引
bool = ExcelDataStr.str.contains("Item No./Customer/Saler") # 初始位置:initial position, 终位置:e ...
- Builder 生成器模式简介与 C# 示例【创建型2】【设计模式来了_2】
〇.简介 1.什么是生成器模式? 一句话解释: 在构造一个复杂的对象(参数多且有可空类型)时,通过一个统一的构造链路,可选择的配置所需属性值,灵活实现可复用的构造过程. 生成器模式的重心,在于分离 ...
- G-channel 实现低光图像增强
G-channel 之前研究低光图像增强时,看到一篇博客,里面介绍了一种方法,没有说明出处,也没有说明方法的名字,这里暂时叫做 G-channel 算法. 博客地址:低照度图像增强(附步骤及源码)_低 ...
- Hi3798MV200 恩兔N2 NS-1 (二): HiNAS海纳思使用和修改
目录 Hi3798MV200 恩兔N2 NS-1 (一): 设备介绍和刷机说明 Hi3798MV200 恩兔N2 NS-1 (二): HiNAS海纳思使用和修改 Hi3798MV200 恩兔N2 NS ...
- flink-cdc同步mysql数据到elasticsearch
1,什么是cdc CDC是(Change Data Capture 变更数据获取)的简称.核心思想是,监测并捕获数据库的变动(包括数据 或 数据表的插入INSERT.更新UPDATE.删除DELETE ...
- Nginx 文件名逻辑漏洞(CVE-2013-4547)(Vulhub)
Nginx 文件名逻辑漏洞(CVE-2013-4547)(Vulhub) 漏洞简介 在Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7版本中存在错误解析用户请求的url信息,从 ...
- 三维模型OSGB格式轻量化的数据压缩与性能平衡分析
三维模型OSGB格式轻量化的数据压缩与性能平衡分析 在三维模型应用中,OSGB格式轻量化处理是一种常见的技术手段,它可以通过数据压缩.简化.滤波等操作,降低三维模型数据的存储空间和传输带宽需求,提高应 ...
- Vuetify使用本地图标资源
Vuetify使用本地图标资源 修改/public/index.html 删除下面两行引用 <link rel="stylesheet" href="https:/ ...