下面是关于Python数据导出Excel的完整实例教程:
第一步:安装必要的包
导出Excel需要使用到 openpyxl
包,所以需要先安装该包。可以使用以下命令进行安装:
pip install openpyxl
第二步:创建一个Excel文件并添加数据
可以使用下面的示例代码创建一个Excel文件,并向其中添加一些数据:
from openpyxl import Workbook
# 创建一个新的Excel文件
wb = Workbook()
# 选择默认的工作表
ws = wb.active
# 添加表头
ws['A1'] = '姓名'
ws['B1'] = '年龄'
ws['C1'] = '性别'
# 添加数据
ws['A2'] = '张三'
ws['B2'] = 18
ws['C2'] = '男'
ws['A3'] = '李四'
ws['B3'] = 20
ws['C3'] = '男'
ws['A4'] = '王五'
ws['B4'] = 22
ws['C4'] = '女'
# 保存Excel文件
wb.save('example.xlsx')
该示例代码中,创建了一个新的Excel文件,并选择默认的工作表,然后在工作表中添加了表头和数据,最后保存Excel文件。
第三步:导出Excel文件
下面的示例代码将读取上一步中创建的Excel文件,然后将其导出为CSV格式:
from openpyxl import load_workbook
import csv
# 读取Excel文件
wb = load_workbook('example.xlsx')
# 选择默认的工作表
ws = wb.active
# 读取数据并将其写入CSV文件
with open('example.csv', 'w', newline='') as file:
writer = csv.writer(file)
for row in ws.iter_rows():
writer.writerow([cell.value for cell in row])
该示例代码中,使用 load_workbook
方法读取Excel文件,然后选择默认的工作表。接着,使用 iter_rows
方法遍历工作表中的所有行,并将每一行的数据写入CSV文件中。
示例说明
下面是两个示例说明:
示例一:从数据库中读取数据并导出为Excel文件
假设你有一个MySQL数据库,其中存储了某个表的数据,你希望将这些数据导出为Excel文件。你可以使用以下代码实现:
import pymysql
from openpyxl import Workbook
# 连接到MySQL数据库
conn = pymysql.connect(host='localhost', user='root', password='123456', db='test_db', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
# 从数据库中获取数据
with conn.cursor() as cursor:
sql = 'SELECT * FROM `user`'
cursor.execute(sql)
data = cursor.fetchall()
# 创建一个新的Excel文件
wb = Workbook()
# 选择默认的工作表
ws = wb.active
# 添加表头
ws['A1'] = '姓名'
ws['B1'] = '年龄'
ws['C1'] = '性别'
# 添加数据
for i, row in enumerate(data):
ws.cell(row=i+2, column=1, value=row['name'])
ws.cell(row=i+2, column=2, value=row['age'])
ws.cell(row=i+2, column=3, value=row['gender'])
# 保存Excel文件
wb.save('user.xlsx')
# 关闭数据库连接
conn.close()
该示例代码中,首先使用 pymysql
模块连接到MySQL数据库,并从数据库中获取数据。然后,创建一个新的Excel文件,并向其中添加表头和数据,最后保存Excel文件。
示例二:导出Excel文件中的数据到数据库
假设你有一个含有学生信息的Excel文件,你希望将其中的数据导入到MySQL数据库中。你可以使用以下代码实现:
import pymysql
from openpyxl import load_workbook
# 连接到MySQL数据库
conn = pymysql.connect(host='localhost', user='root', password='123456', db='test_db', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
# 读取Excel文件中的数据
wb = load_workbook('students.xlsx')
ws = wb.active
# 将数据导入到数据库
with conn.cursor() as cursor:
for row in ws.iter_rows(min_row=2):
name = row[0].value
age = row[1].value
gender = row[2].value
sql = 'INSERT INTO `student` (`name`, `age`, `gender`) VALUES (%s, %s, %s)'
cursor.execute(sql, (name, age, gender))
conn.commit()
# 关闭数据库连接
conn.close()
该示例代码中,首先使用 load_workbook
方法读取Excel文件,然后选择默认的工作表。接着,使用 iter_rows
方法遍历工作表中的所有行,并将每一行的数据导入到MySQL数据库中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python技能之数据导出excel的实例代码 - Python技术站