1 创建新的工作簿
在开始任何 Excel 操作之前,首先需要创建一个工作簿。openpyxl
提供了简单的接口来创建新的工作簿。
创建一个空白的工作簿
我们可以使用 openpyxl.Workbook()
来创建一个新的空白工作簿。以下是一个简单的示例:
python
import openpyxl
# 创建一个新的空白工作簿
workbook = openpyxl.Workbook()
# 获取当前活动的工作表
sheet = workbook.active
# 输出当前活动工作表的名称
print("默认的工作表名称:", sheet.title) # 默认名称为 'Sheet'
# 保存工作簿
workbook.save('new_workbook.xlsx')
代码解释
openpyxl.Workbook()
:创建一个新的空白工作簿对象。workbook.active
:获取当前活动的工作表。默认情况下,openpyxl
会为新创建的工作簿添加一个名为 "Sheet" 的工作表。workbook.save('new_workbook.xlsx')
:将工作簿保存为一个文件,文件名为new_workbook.xlsx
。
小贴士
- 一个工作簿可以包含多个工作表。在创建工作簿后,我们可以添加、删除或重命名工作表。
active
属性总是指向当前工作簿中打开的第一个工作表。
2 保存工作簿到指定位置
保存工作簿是 Excel 操作中的基本步骤。我们可以通过指定路径和文件名来保存工作簿。
保存到当前目录
前面的例子已经展示了如何保存工作簿到当前脚本所在的目录。示例代码如下:
python
import openpyxl
# 创建一个新的工作簿
workbook = openpyxl.Workbook()
# 保存工作簿到当前目录
workbook.save('current_directory_workbook.xlsx')
保存到指定目录
如果想将工作簿保存到指定的目录,可以在保存时指定完整的路径:
python
import openpyxl
# 创建一个新的工作簿
workbook = openpyxl.Workbook()
# 保存工作簿到指定路径
file_path = '/path/to/your/directory/desired_filename.xlsx'
workbook.save(file_path)
注意:请确保文件路径存在,否则保存操作将失败。
代码解释
workbook.save('file_path/desired_filename.xlsx')
:将工作簿保存到指定的路径。路径应包含文件名和扩展名(.xlsx
或.xlsm
)。
覆盖现有文件
如果指定的文件名已存在,save()
操作将覆盖该文件。为避免误操作,可以在保存前检查文件是否存在:
python
import os
import openpyxl
# 创建一个新的工作簿
workbook = openpyxl.Workbook()
# 检查文件是否已存在
file_path = 'existing_file.xlsx'
if os.path.exists(file_path):
print(f"文件 {file_path} 已存在,将覆盖该文件。")
else:
print(f"文件 {file_path} 不存在,创建新文件。")
# 保存工作簿
workbook.save(file_path)
3 打开现有工作簿
有时,我们需要打开并修改一个现有的 Excel 文件。openpyxl
可以轻松实现这一点。
打开一个现有的工作簿
我们使用 openpyxl.load_workbook()
来加载现有的 Excel 文件:
python
import openpyxl
# 打开现有的工作簿
workbook = openpyxl.load_workbook('existing_file.xlsx')
# 获取活动工作表
sheet = workbook.active
# 输出当前活动工作表的名称
print("当前活动工作表名称:", sheet.title)
# 显示A1单元格的值
print("A1单元格的值:", sheet['A1'].value)
代码解释
openpyxl.load_workbook('existing_file.xlsx')
:加载一个已经存在的 Excel 文件并创建工作簿对象。sheet['A1'].value
:获取指定单元格的值。
只读模式与写入模式
- 只读模式 :当处理非常大的 Excel 文件时,可以通过设置
read_only=True
来加载工作簿。这将显著减少内存占用,但不支持修改文件。 - 写入模式:默认模式是可读写的。如果只需要读取数据,建议使用只读模式来提高效率。
示例代码(只读模式):
python
import openpyxl
# 以只读模式打开现有工作簿
workbook = openpyxl.load_workbook('existing_file.xlsx', read_only=True)
# 获取活动工作表
sheet = workbook.active
# 显示A1单元格的值
print("A1单元格的值:", sheet['A1'].value)
4 文件格式:xlsx
vs xlsm
在使用 openpyxl
时,了解文件格式的区别非常重要。openpyxl
主要支持以下两种文件格式:
xlsx
文件格式
- 扩展名 :
.xlsx
- 特点:这是 Excel 2007 及以后的默认文件格式,支持丰富的 Excel 功能如图表、数据透视表、公式等。
- 兼容性 :大多数应用程序和库都支持
.xlsx
文件。
xlsm
文件格式
- 扩展名 :
.xlsm
- 特点 :这是带有宏的 Excel 文件格式。宏是用 VBA(Visual Basic for Applications)编写的小程序,可以自动执行某些任务。
openpyxl
可以读取.xlsm
文件,但不能执行或编辑其中的宏。 - 注意事项 :如果你需要处理包含宏的 Excel 文件并希望保留这些宏,必须使用
.xlsm
格式保存。
示例代码:保存为 .xlsm
文件
python
import openpyxl
# 创建一个新的工作簿
workbook = openpyxl.Workbook()
# 保存为 xlsm 格式
workbook.save('workbook_with_macros.xlsm')