使用python处理excel基础
Excel 基本概念(很重要)
| Excel 概念 | openpyxl 对应 |
|---|---|
| Excel 文件 | Workbook |
| 工作表 | Worksheet |
| 单元格 | Cell |
| 行 / 列 | row / column |
创建一个 Excel 文件(写)
创建并保存 Excel
from openpyxl import Workbook
wb = Workbook() # 创建工作簿
ws = wb.active # 获取当前活动工作表
ws.title = "学生成绩" # 重命名工作表
# 写入数据
ws["A1"] = "姓名"
ws["B1"] = "语文"
ws["C1"] = "数学"
ws.append(["张三", 85, 90])
ws.append(["李四", 78, 88])
wb.save("成绩表.xlsx")
append()会自动写到下一行
读取 Excel 文件(读)
打开已有 Excel
from openpyxl import load_workbook
wb = load_workbook("成绩表.xlsx")
ws = wb["学生成绩"]
# 读取单元格
print(ws["A1"].value)
print(ws.cell(row=2, column=1).value)
遍历所有行
for row in ws.iter_rows(values_only=True):
print(row)
输出:
('姓名', '语文', '数学')
('张三', 85, 90)
('李四', 78, 88)
常用操作大全
选择工作表
ws = wb["Sheet1"]
ws = wb.active
获取最大行 / 列
print(ws.max_row)
print(ws.max_column)
插入行 / 列
ws.insert_rows(2) # 在第 2 行前插入
ws.insert_cols(1, 2) # 在第 1 列前插入 2 列
删除行 / 列
ws.delete_rows(3)
ws.delete_cols(2)
合并单元格
ws.merge_cells("A1:C1")
ws["A1"] = "学生成绩表"
取消合并:
ws.unmerge_cells("A1:C1")
设置单元格样式(字体、颜色)
from openpyxl.styles import Font
ws["A1"].font = Font(
name="微软雅黑",
size=14,
bold=True,
color="FF0000"
)
设置列宽 / 行高
ws.column_dimensions["A"].width = 20
ws.row_dimensions[1].height = 30
公式 & 数字格式
写入公式
ws["D2"] = "=SUM(B2:C2)"
设置数字格式
from openpyxl.styles import numbers
ws["B2"].number_format = numbers.FORMAT_NUMBER_00
实战示例:自动生成成绩单
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.title = "成绩单"
headers = ["姓名", "语文", "数学", "总分"]
ws.append(headers)
students = [
("张三", 85, 90),
("李四", 78, 88),
("王五", 92, 95)
]
for name, chinese, math in students:
ws.append([name, chinese, math, f"=B{ws.max_row}+C{ws.max_row}"])
wb.save("自动成绩单.xlsx")

浙公网安备 33010602011771号