python openpyxl 详细用法
时间: 2025-05-29 08:58:31 浏览: 26
### Python 中 Openpyxl 库的详细用法和指南
#### 1. **简介**
`openpyxl` 是一个用于读取和写入 Excel 文件(`.xlsx` 格式)的强大 Python 库。它可以用来创建、修改和格式化电子表格,广泛应用于数据分析、报表生成等领域[^1]。
---
#### 2. **安装**
在使用 `openpyxl` 之前,需要先安装该库。可以通过以下命令进行安装:
```bash
pip install openpyxl
```
---
#### 3. **基本操作**
##### (1)创建工作簿
通过 `Workbook()` 方法可以创建一个新的工作簿对象。
```python
from openpyxl import Workbook
# 创建一个新的工作簿
wb = Workbook()
# 默认会有一个名为 "Sheet" 的工作表
ws = wb.active
ws.title = "My First Sheet"
# 保存工作簿到指定路径
wb.save("example.xlsx")
```
以上代码展示了如何创建一个新的 Excel 工作簿,并将其保存为文件[^2]。
---
##### (2)创建新工作表
可以在已有的工作簿中新增工作表。
```python
# 创建新的工作表
sheet1 = wb.create_sheet(title="Sheet1", index=0) # 插入第一个位置
sheet2 = wb.create_sheet(title="Sheet2", index=1) # 插入第二个位置
# 批量创建多个工作表
for i in range(3, 6):
wb.create_sheet(f"My_Sheet_{i}")
wb.save("multiple_sheets.xlsx")
```
这里演示了如何向工作簿中添加多个自定义命名的工作表[^2]。
---
##### (3)删除工作表
如果不再需要某个工作表,可以直接移除它。
```python
# 删除工作表
if "Sheet1" in wb.sheetnames:
del wb["Sheet1"]
wb.save("after_deletion.xlsx")
```
注意:删除工作表时应确保其存在,否则可能会引发错误。
---
##### (4)读取现有工作簿
要打开已经存在的 Excel 文件,可以使用 `load_workbook()` 方法。
```python
from openpyxl import load_workbook
# 加载现有的工作簿
wb = load_workbook(filename="existing_file.xlsx")
# 查看所有工作表的名字
all_sheets = wb.sheetnames
print(all_sheets)
# 访问具体某张工作表
active_ws = wb.active
specific_ws = wb["SheetName"]
```
这段代码解释了如何加载已有文件并获取其中的工作表列表[^2]。
---
##### (5)单元格操作
无论是写入还是读取数据,都需要定位具体的单元格。
```python
# 写入数据到单元格
ws["A1"] = "Hello"
ws.cell(row=1, column=2).value = "World"
# 读取单元格中的值
a1_value = ws["A1"].value
b1_value = ws.cell(row=1, column=2).value
print(a1_value, b1_value)
```
此处介绍了两种不同的方式来访问单元格及其内容。
---
##### (6)遍历行列
有时我们需要批量处理整个行或列的数据。
```python
# 遍历所有的行
for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):
for cell in row:
print(cell.value)
# 遍历所有的列
for col in ws.iter_cols(min_row=1, max_col=3, max_row=2):
for cell in col:
print(cell.value)
```
迭代函数可以帮助我们高效地扫描大量数据。
---
##### (7)格式化单元格
除了简单的数值输入外,还可以调整字体、边框等属性。
```python
from openpyxl.styles import Font, Border, Side
# 设置字体样式
bold_font = Font(bold=True)
ws["C1"].font = bold_font
# 设置边框
thin_border = Border(left=Side(style='thin'),
right=Side(style='thin'),
top=Side(style='thin'),
bottom=Side(style='thin'))
ws["D1"].border = thin_border
```
这些技巧让生成的报告更加美观专业。
---
##### (8)复制工作表
当希望保留原始结构的同时稍作改动时,可以用到复制功能。
```python
# 复制一张工作表
copied_ws = wb.copy_worksheet(ws)
copied_ws.title = f"{ws.title}_Copy"
wb.save("with_copy.xlsx")
```
这样就轻松实现了副本制作。
---
### 总结
本文全面覆盖了 `openpyxl` 的核心功能,从基础概念到高级特性均有所涉及。掌握这些技能后,便能灵活运用此工具解决各类实际问题。
阅读全文
相关推荐

















