上一篇
Python Workbook对象使用教程 - 从入门到实战 | Excel自动化指南
- Python
- 2025-08-16
- 56
Python Workbook对象完全使用指南
Workbook是Python操作Excel文件的核心对象,通过openpyxl库提供完整的Excel读写功能。本教程将详细讲解Workbook的使用方法。
安装openpyxl库
pip install openpyxl
基础操作
1. 创建新Excel文件
from openpyxl import Workbook # 创建Workbook对象 wb = Workbook() # 获取默认工作表 ws = wb.active ws.title = "员工数据" # 保存文件 wb.save("新工作簿.xlsx")
2. 工作表操作
# 创建新工作表 ws1 = wb.create_sheet("销售报表") # 末尾插入 ws2 = wb.create_sheet("库存", 0) # 首位插入 # 遍历所有工作表 for sheet in wb: print(sheet.title) # 删除工作表 del wb["库存"] # 或 wb.remove(wb["库存"])
数据读写操作
1. 写入数据
# 单单元格写入 ws["A1"] = "姓名" ws["B1"] = "销售额" # 多行数据写入 data_rows = [ ["张三", 15000], ["李四", 23000], ["王五", 18000] ] for row in data_rows: ws.append(row) # 单元格坐标写入 ws.cell(row=5, column=1, value="总计") ws.cell(row=5, column=2, value=sum(row[1] for row in data_rows))
2. 读取数据
# 读取单个单元格 name = ws["A2"].value print(f"第二行姓名: {name}") # 遍历所有数据 for row in ws.iter_rows(min_row=1, max_col=2, values_only=True): print(row) # 获取最大行列数 max_row = ws.max_row max_col = ws.max_column print(f"数据范围: {max_row}行×{max_col}列")
样式设置
from openpyxl.styles import Font, Alignment, Border, Side # 设置标题样式 title_font = Font(name='微软雅黑', size=14, bold=True, color="FFFFFF") title_fill = PatternFill(start_color="3366FF", end_color="3366FF", fill_type="solid") for cell in ws[1]: cell.font = title_font cell.fill = title_font cell.alignment = Alignment(horizontal="center") # 设置边框 thin_border = Border( left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin') ) for row in ws.iter_rows(min_row=1, max_row=ws.max_row): for cell in row: cell.border = thin_border # 调整列宽 ws.column_dimensions['A'].width = 20 ws.column_dimensions['B'].width = 15
实战案例
def create_sales_report(): # 创建工作簿 wb = Workbook() ws = wb.active ws.title = "季度销售报告" # 写入标题 headers = ["产品ID", "产品名称", "Q1销量", "Q2销量", "Q3销量", "Q4销量"] ws.append(headers) # 写入数据 products = [ [101, "智能手机", 1200, 1500, 1800, 2100], [102, "平板电脑", 800, 950, 1100, 1300], [103, "智能手表", 1500, 1700, 2000, 2400] ] for prod in products: ws.append(prod) # 添加公式 for i in range(2, 5): ws[f"G{i}"] = f"=SUM(C{i}:F{i})" # 设置样式 header_font = Font(bold=True, color="FFFFFF") header_fill = PatternFill(start_color="0070C0", fill_type="solid") for cell in ws[1]: cell.font = header_font cell.fill = header_fill # 保存文件 wb.save("2023年度销售报告.xlsx") create_sales_report()
常见问题解决
- 文件保存失败:检查文件是否被其他程序打开
- 样式不生效:确保正确导入样式类并赋值给单元格
- 读取大文件慢:使用
read_only=True
模式打开文件 - 公式不更新:打开文件时添加
data_only=True
参数
本文由HuLin于2025-08-16发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://521pj.cn/20258264.html
发表评论