使用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('') ...
随机推荐
- 【MAUI Blazor踩坑日记】1.关于图标的处理
前言 本系列文章,默认你已经踏上了MAUI Blazor的贼船,并且对MAUI Blazor有了一些了解,知道MAUI是什么,知道Blazor是什么. 不会教你怎么写MAUI Blazor的项目,只是 ...
- Cesium 概述 (二) 空间数据可视化
https://blog.csdn.net/happyduoduo1/article/details/51865811/
- 【go笔记】简单的http服务
前言 Go语言通过内置的标准库net/http可以非常方便地实现web服务.不借助任何框架,单凭标准库,50行代码内即可实现简单的web服务. http的ListenAndServe()函数原型: f ...
- 关于Openssh版本升级问题及版本升级到最新版8.7p1流程(CentOS7系统)
前言: 对linux服务器做过漏洞扫描的都知道,常常服务器会被扫出一大堆关于openssh的漏洞,诸如下面这些,而其中的原因就是因为openssh版本比较低.于是就需要升级openssh的版本.下面就 ...
- 通过python,将excel中的数据写入二维列表
需求:读取Excel表中数据,每行数据放在一个列表中,再把所有列表都存入到一个列表中,形成二维列表. 实现方法:导入可在Python处理Excel表格数据的模块. excel表: 方法一:xlwing ...
- C# OpenCVSharp图像入门_给绿幕图片视频加背景
OpenCV的全称是Open Source Computer Vision Library,是一个跨平台的计算机视觉库.OpenCV是由英特尔公司发起并参与开发,以BSD许可证授权发行,可以在商业和研 ...
- 【Ubuntu】Ubuntu 配置记录
目录 系统文件夹改回英文 Ubuntu 镜像 pypi 镜像 临时使用 设为默认 Doxygen + Graphviz 分析代码并画图 Graphviz 安装 Doxygen 安装 配置 运行 系统文 ...
- Deep Transfer Learning综述阅读笔记
这是一篇linkedin发表的深度迁移学习综述, 里面讲了一些对于search/recommend system中的迁移学习应用. 有不少指导性的方法, 看完后摘录出来 对于ranking方向的TL, ...
- No manual entry for ls终极解决办法
No manual entry for ls解决办法,最后一种方法一定能解决你的问题 步骤一:确认man是否已经安装 #which man /usr/bin/man---返回此行,证明已经安装 步骤二 ...
- 路由器与交换机:Access/Trunk,Wan/Lan
转载请注明出处: 1.交换机与路由器 交换机与路由器的特点: 交换机(Switch): 用于在局域网中传输数据帧 基于MAC地址进行转发和过滤 工作在数据链路层(第二层) 具有多个端口,可以连接多台计 ...