今天学习什么?
今天我们来认识Excel文件,学习Python如何操作表格。
什么是Excel?
Excel是一种电子表格软件,可以用来:
存储数据 计算数据 制作图表 分析数据
Excel文件格式
常见格式:
.xlsx:新版Excel格式(推荐).xls:旧版Excel格式.csv:逗号分隔值(通用格式)
openpyxl库
什么是openpyxl?
openpyxl是Python处理Excel文件的标准库。
安装方法:
pip install openpyxl
基本导入:
import openpyxl
Excel基本概念
工作簿(Workbook):
一个Excel文件就是一个工作簿 可以包含多个工作表
工作表(Sheet):
工作簿中的一个表格 默认有3个工作表:Sheet1、Sheet2、Sheet3
单元格(Cell):
表格中的一个小格子 用行号和列号表示:A1、B2、C3...
行和列:
行:用数字表示(1、2、3...) 列:用字母表示(A、B、C...)
创建Excel文件
基本方法:
import openpyxl
# 创建工作簿
wb = openpyxl.Workbook()
# 获取当前工作表
ws = wb.active
ws.title = "学生成绩"
# 写入数据
ws['A1'] = '姓名'
ws['B1'] = '数学'
ws['C1'] = '语文'
ws['D1'] = '英语'
ws['A2'] = '小明'
ws['B2'] = 85
ws['C2'] = 92
ws['D2'] = 88
# 保存文件
wb.save('学生成绩.xlsx')
print("Excel文件创建完成!")
读取Excel文件
基本方法:
import openpyxl
# 打开工作簿
wb = openpyxl.load_workbook('学生成绩.xlsx')
# 获取工作表
ws = wb.active
# 读取数据
print(f"工作表名称:{ws.title}")
print(f"行数:{ws.max_row}")
print(f"列数:{ws.max_column}")
# 读取单元格
print(f"A1的值:{ws['A1'].value}")
print(f"B2的值:{ws['B2'].value}")
# 保存
wb.close()
动手实践
今天的任务:
创建一个Excel文件 写入一些数据 读取Excel文件内容
练习1:创建课程表
import openpyxl
# 创建工作簿
wb = openpyxl.Workbook()
ws = wb.active
ws.title = "课程表"
# 写入表头
headers = ['时间', '星期一', '星期二', '星期三', '星期四', '星期五']
for col, header in enumerate(headers, 1):
ws.cell(row=1, column=col, value=header)
# 写入课程数据
courses = [
['第1节', '数学', '语文', '英语', '数学', '体育'],
['第2节', '语文', '数学', '科学', '音乐', '美术'],
['第3节', '英语', '科学', '语文', '英语', '班会'],
['第4节', '体育', '音乐', '数学', '美术', '自习']
]
for row, course in enumerate(courses, 2):
for col, subject in enumerate(course, 1):
ws.cell(row=row, column=col, value=subject)
# 保存文件
wb.save('课程表.xlsx')
print("课程表创建完成!")
练习2:读取并显示课程表
import openpyxl
# 打开工作簿
wb = openpyxl.load_workbook('课程表.xlsx')
ws = wb.active
print(f"课程表:{ws.title}")
print("=" * 40)
# 读取并显示所有数据
for row in ws.iter_rows(values_only=True):
for cell in row:
print(f"{str(cell):<8}", end="")
print()
wb.close()
本章小结
今天学到了什么?
Excel文件可以存储表格数据 openpyxl可以操作Excel文件 工作簿包含工作表 工作表包含单元格 可以创建、写入、读取Excel文件
明天预告:
明天我们将学习如何读取Excel数据!
练习题
什么是工作簿?什么是工作表? 如何用openpyxl创建Excel文件? 如何读取单元格的值?
学习心得
今天的学习心得:_______________
遇到的问题:_______________
明天要重点学习:_______________
夜雨聆风