本篇文章主要介绍Python对xlsx文件的常用操作
基础库介绍 📚
openpyxl (推荐⭐)
xlrd/xlwt (老牌但有点旧)
pandas (数据分析神器)
1
|
pip install pandas openpyxl
|
基础操作 🛠️
创建新xlsx文件 ✨
1
2
3
4
5
6
7
8
9
10
|
from openpyxl import Workbook
wb = Workbook() # 创建新工作簿
ws = wb.active # 获取活动工作表
ws.title = "我的表表" # 改个可爱的名字~
ws['A1'] = "你好呀~" # 写入A1单元格
ws['B1'] = "😊😊😊"
wb.save("我的第一个xlsx.xlsx") # 保存文件
|
读取已有文件 👀
1
2
3
4
5
6
7
|
from openpyxl import load_workbook
wb = load_workbook("我的第一个xlsx.xlsx")
print(wb.sheetnames) # 打印所有工作表名
ws = wb["我的表表"] # 选择特定工作表
print(ws['A1'].value) # 读取A1的值 → "你好呀~"
|
常用操作大全 💫
读写单元格 (超简单!)
1
2
3
4
5
6
|
# 写入
ws.cell(row=2, column=1, value="第二行第一列") # A2单元格
ws["B2"] = 12345
# 读取
print(ws["B2"].value) # → 12345
|
遍历数据 🔄
1
2
3
4
5
6
7
8
9
|
for row in ws.iter_rows(min_row=1, max_col=2, max_row=2):
for cell in row:
print(f"单元格 {cell.coordinate} 的值是: {cell.value}")
# 输出:
# 单元格 A1 的值是: 你好呀~
# 单元格 B1 的值是: 😊😊😊
# 单元格 A2 的值是: 第二行第一列
# 单元格 B2 的值是: 12345
|
修改样式 🎨
1
2
3
4
5
6
7
8
9
|
from openpyxl.styles import Font, Color
# 设置字体样式
ws["A1"].font = Font(name="微软雅黑", size=12, bold=True, color="FF0000")
# 设置背景色 (需要导入PatternFill)
from openpyxl.styles import PatternFill
yellow_fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")
ws["B1"].fill = yellow_fill
|
用pandas操作xlsx (更高效!) 🐼
读取数据
1
2
3
4
5
6
7
|
import pandas as pd
# 读取整个文件
df = pd.read_excel("数据.xlsx", sheet_name="Sheet1")
# 读取部分数据
df = pd.read_excel("数据.xlsx", usecols="A:C", nrows=100) # 只读A-C列,前100行
|
写入数据
1
2
3
4
5
6
7
8
9
10
|
# 创建DataFrame
data = {
"姓名": ["小明", "小红", "小刚"],
"年龄": [20, 19, 21],
"成绩": [98, 85, 92]
}
df = pd.DataFrame(data)
# 写入Excel
df.to_excel("学生数据.xlsx", sheet_name="学生表", index=False)
|
高级技巧 🔥
操作多个工作表
1
2
3
4
5
6
7
8
9
10
11
|
wb = Workbook()
# 添加多个工作表
ws1 = wb.create_sheet("一月数据")
ws2 = wb.create_sheet("二月数据")
# 在不同表写入数据
ws1["A1"] = "一月销售额"
ws2["A1"] = "二月销售额"
wb.save("月度报告.xlsx")
|
公式计算
1
2
|
ws["C1"] = "总和"
ws["C2"] = "=SUM(B1:B2)" # 写入Excel公式
|
插入图片
1
2
3
4
|
from openpyxl.drawing.image import Image
logo = Image("logo.png") # 加载图片
ws.add_image(logo, "D5") # 插入到D5单元格位置
|
这样操作xlsx文件是不是超简单呢?(ノ◕ヮ◕)ノ*:・゚✧ 快去试试吧!遇到问题可以在评论区提问哦~ 💕