杰瑞科技汇

Python workbook模块如何使用?

Python 的标准库中并没有一个叫做 workbook 的模块。

Python workbook模块如何使用?-图1
(图片来源网络,侵删)

workbook 这个词通常指的是像 Microsoft Excel 或 LibreOffice Calc 这样的电子表格文件(.xlsx, .xls, .ods 等),当人们谈论 Python 中的 "workbook" 时,他们几乎总是指代那些用来操作电子表格文件的第三方库。

最流行、功能最强大的库就是 openpyxl

下面,我将围绕 openpyxl 来详细解释如何操作 "workbook"(工作簿)。


什么是 openpyxl

openpyxl 是一个用于读写 Excel 2010 .xlsx 文件的 Python 库,它支持 .xlsx.xlsm.xltx.xltm 格式,对于旧版的 .xls 格式,你需要使用另一个库 xlrd(读)和 xlwt(写)。

Python workbook模块如何使用?-图2
(图片来源网络,侵删)

安装 openpyxl

在使用之前,你需要先安装它,打开你的终端或命令行,运行以下命令:

pip install openpyxl

workbookworksheetcell 的概念

理解 openpyxl 的核心,首先要理解 Excel 文件的基本结构:

  • Workbook (工作簿): 一个 Excel 文件(report.xlsx)就是一个 Workbook,它是所有数据的容器。
  • Worksheet (工作表): 一个 Workbook 可以包含多个工作表,"Sheet1", "Sheet2" 等,你可以把它想象成一张独立的表格。
  • Cell (单元格): 工作表中的最小单位,由行和列交叉组成(A1, B2),每个单元格可以存储数据(文本、数字、公式等)。

openpyxl 的操作逻辑就是:

  1. 打开一个 Workbook
  2. 选择一个 Worksheet
  3. 操作 Worksheet 中的 Cell

openpyxl 的核心操作

下面我们通过代码来学习最常见的操作。

a. 创建一个新的 Workbook 并保存

from openpyxl import Workbook
# 1. 创建一个新的 Workbook 对象
# 默认会创建一个名为 "Sheet" 的工作表
wb = Workbook()
# 2. 获取当前活跃的工作表 (通常是第一个创建的)
ws = wb.active= "销售数据" # 修改工作表名称
# 3. 向单元格写入数据
# 可以直接通过赋值操作
ws['A1'] = "产品名称"
ws['B1'] = "销售额"
ws['A2'] = "笔记本电脑"
ws['B2'] = 15000
ws['A3'] = "手机"
ws['B3'] = 8000
# 4. 保存 Workbook 到一个文件
# 如果文件已存在,它将被覆盖
filename = "sales_report.xlsx"
wb.save(filename)
print(f"文件 '{filename}' 已成功创建!")

b. 打开一个已存在的 Workbook

from openpyxl import load_workbook
# 1. 加载一个已存在的 Workbook
# 注意:文件必须存在
try:
    wb = load_workbook("sales_report.xlsx")
    print(f"成功加载文件 'sales_report.xlsx'")
    # 2. 获取特定名称的工作表
    ws = wb["销售数据"]
    print(f"正在操作工作表: {ws.title}")
    # 3. 读取单元格的值
    product_name = ws['A2'].value
    sales = ws['B2'].value
    print(f"读取到数据: {product_name} 的销售额是 {sales}")
except FileNotFoundError:
    print("错误:文件 'sales_report.xlsx' 未找到!")

c. 遍历工作表中的数据

当需要处理大量数据时,逐个单元格引用会很麻烦。openpyxl 提供了多种遍历方式。

from openpyxl import load_workbook
wb = load_workbook("sales_report.xlsx")
ws = wb.active
# --- 方法1:按行遍历 (推荐) ---
# ws.iter_rows() 会返回一个生成器,每次产生一行
# min_row, max_row, min_col, max_col 可以指定范围
print("\n--- 按行遍历数据 ---")
for row in ws.iter_rows(min_row=2, max_row=3, min_col=1, max_col=2):
    # row 是一个包含单元格对象的元组,(Cell('A2'), Cell('B2'))
    for cell in row:
        print(f"单元格 {cell.coordinate} 的值是: {cell.value}")
# --- 方法2:按列遍历 ---
# ws.iter_cols() 会返回一个生成器,每次产生一列
print("\n--- 按列遍历数据 ---")
for col in ws.iter_cols(min_row=1, max_row=3, min_col=1, max_col=2):
    for cell in col:
        print(f"单元格 {cell.coordinate} 的值是: {cell.value}")
# --- 方法3:直接遍历所有行 ---
# ws.rows 是 ws.iter_rows() 的一个简写形式
print("\n--- 遍历所有行 ---")
for row in ws.rows:
    for cell in row:
        print(f"{cell.value}", end="\t") # 使用制表符对齐
    print() # 换行

d. 添加数据和样式

openpyxl 不仅可以读写数据,还可以修改样式。

from openpyxl import Workbook
from openpyxl.styles import Font, Alignment, PatternFill
wb = Workbook()
ws = wb.active= "格式化示例"
# 1. 写入数据
ws['A1'] = "标题"
ws['B1'] = "数值"
ws['A2'] = "总收入"
ws['B2'] = 50000
# 2. 设置单元格样式
# 字体样式
bold_font = Font(name='微软雅黑', size=12, bold=True, color="FF0000") # 红色粗体
ws['A1'].font = bold_font
# 对齐方式
center_alignment = Alignment(horizontal='center', vertical='center')
ws['A1'].alignment = center_alignment
ws['B1'].alignment = center_alignment
# 填充背景色
yellow_fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")
ws['A1'].fill = yellow_fill
# 3. 调整行高和列宽
ws.row_dimensions[1].height = 30  # 设置第一行的高度
ws.column_dimensions['A'].width = 20 # 设置A列的宽度
# 4. 添加新的行和列
ws.append(["新项目", 3000]) # 在工作表末尾添加一行
ws.insert_cols(3) # 在第3列的位置插入一个空列
wb.save("formatted_report.xlsx")
print("已创建并保存格式化后的文件 'formatted_report.xlsx'")

其他常用的 workbook

除了 openpyxl,还有其他一些库也用于操作 Excel,各有侧重:

库名称 主要特点 适用场景
openpyxl 功能全面,读写 .xlsx,支持样式、图表等。 首选,适用于绝大多数 Excel 文件操作。
xlrd / xlwt xlrd 只能读旧版 .xlsxlwt 只能写旧版 .xls 处理非常老旧的 Excel 文件(.xls)。
pandas 强大的数据分析库,read_excel()to_excel() 函数是其核心。 数据分析,当你需要对表格数据进行计算、清洗、分析时,用 pandas 更方便,它底层也使用 xlrdopenpyxl 作为引擎。
xlsxwriter 只能写,不能读,在创建新 .xlsx 文件方面性能极佳,支持非常丰富的样式和图表功能。 需要生成大量格式复杂、性能要求高的 Excel 报告时。

当你听到 "Python workbook 模块" 时,

  1. 核心概念: 你要操作的是 Workbook (工作簿)、Worksheet (工作表) 和 Cell (单元格)。
  2. 主要工具: 最常用的是 openpyxl 库。
  3. 基本流程:
    • 创建/加载 Workbook (Workbook() / load_workbook())。
    • 选择 Worksheet (wb.active / wb['Sheet名'])。
    • 读写/修改 Cell (ws['A1'].value = ... / value = ws['A1'].value)。
    • 保存 Workbook (wb.save('filename.xlsx'))。
  4. 选择库:
    • 通用读写和格式化:openpyxl
    • 数据分析:pandas
    • 高性能写入:xlsxwriter

希望这份详细的讲解能帮助你完全理解 Python 中操作 "workbook" 的概念和方法!

分享:
扫描分享到社交APP
上一篇
下一篇