Python实现将MySQL数据库查询结果导出到Excel
作者:qwerrt9
在实际工作中,我们经常需要将数据库中的数据导出到Excel表格中进行进一步的分析和处理,Python中的pymysql和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的文章就介绍到这了,更多相关Python数据库数据导出到Excel内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!