使用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('') ...
随机推荐
- 2021-09-27 Core初步实战
中间件Progarm的定义添加Logging public static IHostBuilder CreateHostBuilder(string[] args) => Host.Create ...
- 重温C#中的值类型和引用类型
在C#中,数据类型分为值类型和引用类型两种. 引用类型变量存储的是数据的引用,数据存储在数据堆中,而值类型变量直接存储数据.对于引用类型,两个变量可以引用同一个对象.因此,对一个变量的操作可能会影响另 ...
- openpyxl 设置某列单元格样式
1 # 边框线 2 border_set = Border(left=Side(border_style='thin', color='000000'), 3 right=Side(border_st ...
- 这些年写过的花式sql - 第一句 删除重复无效的记录
这些年写过的花式sql - 第一句 删除重复无效的记录 写好复杂sql可以减少代码量,经过写这些年的后台统计,我学着像写代码一样的设计和尝试sql.现整理如下: 本来想一次性写完的,不过那写起来和看起 ...
- centos打开防火墙的TCP80端口
用管理员权限运行iptables -I INPUT -p tcp --dport 80 -j ACCEPT
- Hybrid App 技术路径带动性能的提升
说到 Hybrid App(混合应用)大家都不陌生,因为这种开发模式大行其道发展的这些年取代了很多原生和 Web 应用,为什么大家对这种「Native + HTML5」的开发模式额外偏爱呢? 因为一方 ...
- PIP升级+安装Django命令[WARNING: Retrying (Retry(total=4, connect=None...]
升级: >pip install -U Django 安装: >pip install Django 如果发现超时错误内容:(WARNING: Retrying (Retry(total= ...
- stencilJs学习之构建 Drawer 组件
前言 在之前的学习中,我们已经掌握了 stencilJs 中的一些核心概念和基础知识,如装饰器 Prop.State.Event.Listen.Method.Component 以及生命周期方法.这些 ...
- defined('BASEPATH') OR exit('No direct script access allowed'); 的作用
起到保护.php文件的作用, 如果直接访问此php文件会得到"不允许直接访问脚本"的错误提示 如果你是用ci框架或者其他的什么, 就建议加上, 如果你怕别人恶意攻击你的话
- 【目标检测】RCNN算法实现
一.前言 RCNN(Regions with CNN features)算法由Ross Girshick在2014年的论文"Rich feature hierarchies for accu ...