下面是针对“python3实现mysql导出excel的方法”的完整实例教程:
1. 安装依赖库
首先,在Python中使用第三方库实现导出excel的功能。因此,需要先安装以下依赖库:
pip install xlwt pymysql openpyxl
其中:
xlwt
用于写入.xls文件;pymysql
用于在Python代码中使用MySQL;openpyxl
用于写入.xlsx文件。
2. 连接MySQL
在导出之前,需要连接MySQL数据库,并选择需要导出的数据。下面是连接MySQL数据库的示例代码:
import pymysql
connection = pymysql.connect(
host="localhost",
user="root",
password="root",
db="database_name",
charset="utf8"
)
其中:
host
:MySQL服务器的主机名,默认为localhost
;user
:MySQL登录用户名;password
:MySQL登录密码;db
:需要连接的数据库名称;charset
:数据表的字符编码,默认为utf8
。
3. 查询MySQL数据
查询MySQL数据并将结果导出到excel文件中。查询相关数据可以使用SELECT
语句。下面是查询MySQL表中所有数据的示例代码:
import xlwt
cursor = connection.cursor()
select_sql = "SELECT * FROM table_name"
cursor.execute(select_sql)
result = cursor.fetchall()
4. 将数据写入excel文件
现在,已经获取了MySQL表中所有数据,接下来,就需要将这些数据写入excel文件中。首先,需要创建一个新的excel文件。下面是创建一个.xls文件的示例代码:
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('sheet1')
如果想要创建.xlsx文件,则需要使用如下代码:
from openpyxl import Workbook
workbook = Workbook()
worksheet = workbook.active
worksheet.title = 'sheet1'
其中,.active
是来获取默认的工作表,.title
则用于设置工作表的名称。
然后,将result
中的数据写入excel文件。下面是将MySQL表中所有数据写入到.xls或.xlsx文件中的示例代码:
for i, row in enumerate(result):
for j, col in enumerate(row):
worksheet.write(i+1, j, col)
workbook.save('table_name.xls')
注意:
-
enumerate()
是Python中经常使用的内置函数,用于将可遍历的数据对象(如列表、元组或字符串)生成一个枚举对象。 -
在
.write(i+1, j, col)
中,i+1
表示从excel文件的第二行开始写入数据,j
表示列数,而col
则表示该单元格中的数据值。
5. 完整代码示例
下面是完整的示例代码,其中使用的是.xls文件:
import xlwt
import pymysql
# 连接MySQL
connection = pymysql.connect(
host="localhost",
user="root",
password="root",
db="database_name",
charset="utf8"
)
# 查询MySQL数据
cursor = connection.cursor()
select_sql = "SELECT * FROM table_name"
cursor.execute(select_sql)
result = cursor.fetchall()
# 写入excel文件
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('sheet1')
for i, row in enumerate(result):
for j, col in enumerate(row):
worksheet.write(i+1, j, col)
workbook.save('table_name.xls')
导出结果为以下内容:
id | name | age | gender |
---|---|---|---|
1 | 张三 | 20 | 男 |
2 | 李四 | 21 | 男 |
3 | 王五 | 22 | 女 |
6. 示例说明
(1)查询表中特定条件的数据并导出excel文件
在实际使用中,我们可能需要根据一定的条件查询MySQL表中的特定数据,并将其导出到excel文件中。例如,导出gender
字段为男
的所有数据。此时,可以使用以下SELECT
语句:
select_sql = "SELECT * FROM table_name WHERE gender='男'"
在Python代码中的使用方法与之前的示例类似,此处不再重复。最终导出的excel文件中,仅包含gender
字段为男
的数据。
(2)将所有数据导出到单个或多个excel文件中
如果MySQL表中的数据量很大,可能需要将所有的数据分别导出到不同的excel文件中。此时,可以根据一定的方式,将表中的数据分割为多个数据块,并分别导出到不同的excel文件中。具体实现方法与之前的示例类似,此处不再赘述。