乐于分享
好东西不私藏

Python开发从零开始-50.7-Office 文档处理

Python开发从零开始-50.7-Office 文档处理

接上文Python开发从零开始-50.6-Office 文档处理,本文小编与大家分享 Python 处理 Office 文档的相关知识。

(三)openpyxl 库的安装和导入

1、openpyxl 库安装

如果操作系统中只安装了 Python 3 开发环境,可以使用 pip 或 pip3 安装 openpyxl 库。

pip install openpyxl

2、openpyxl 库导入

openpyxl 库安装后,就可以使用 import 语句导入。

import openpyxl

(四)openpyxl 库的基本使用

1、创建和保存 Excel 文档

Workbook 对象的构造函数可以创建一个新的 Excel 文档,Workbook 对象的save() 方法可以保存 Excel 文档到指定文件路径。

import openpyxl# 创建一个 Workbook 对象,同时会创建一个新的 Excel 文档wb = openpyxl.Workbook()# 保存文档wb.save("example.xlsx")

Workbook 对象的构造函数原型为:

Workbook(write_only=False, iso_dates=False)
参数解释:
  • write_only:布尔型,设为 False(默认)时,表示工作簿‌可读可写‌;若设为 True,则表示创建只写文档,这样数据不会被加载到内存中,在大数据量写入操作时,可以显著减少内存的使用;
  • iso_dates:布尔型,设为 False(默认)时,日期对象将保存为 Excel 原生的序列号格式;若设为 True,则强制将日期和时间存储为 ISO 8601标准日期格式(该标准规定日期应使用 年-月-日 的顺序表示,格式为 YYYY-MM-DD)。

使用 openpyxl 库创建和保存 Excel 文档时应注意:

(1)文件路径‌

确保有写入文件的权限,并且指定了正确的文件路径。

(2)文件格式‌

openpyxl 主要用于 .xlsx 格式的文件,不建议保存为 .xls 格式文件。

(3)文档关闭

  • 常规读写操作时,当调用 Workbook.save() 方法后,openpyxl 会确保所有的更改都被正确地写入到文件中,并且会处理文件的关闭过程。因此,不需要在代码中显式地调用 Workbook.close() 方法关闭工作簿;

  • 在只读只写情况下,建议在操作结束后手动调用 Workbook.close() 方法,主动释放底层的文件流资源,避免出现资源占用残留的情况;

  • 使用 with 语句可以更安全地管理文件资源,不但能自动保证资源被安全释放,还能避免程序异常中断时出现文件损坏的问题。

(4)异常处理

涉及文件操作时,可能会遇到各种错误(如文件路径错误、磁盘空间不足等),建议将 Workbook.save() 方法放置在 try 块中,并使用 except 块来捕获并处理异常。

【小编提示】
① 工作簿对象(Workbook)的完整导入路径是:
openpyxl.workbook.workbook.Workbook
为方便开发者避免书写冗长导入路径,openpyxl 库在顶层包提供了快捷导入路径:

openpyxl.Workbook

两者完全等价。

② openpyxl 库在顶层包也同样为工作表对象(Worksheet) 提供了快捷导入路径:

openpyxl.Worksheet

2、打开 Excel 文档

可以使用 openpyx.load_workbook() 函数打开已有 Excel 文档。代码示例如下所示:

import openpyxl# 打开一个已有 Excel 文档wb = openpyxl.load_workbook("example.xlsx")

3、创建和获取工作表

(1)默认工作表

使用 Workbook 对象的构造函数创建工作簿对象时,将默认创建一个标题名为 “Sheet” 的工作表对象(Worksheet)

(2)创建工作表

一个工作簿包含一个或多个工作表,可以通过 Workbook 对象的 create_sheet() 方法来创建新的工作表。该方法原型为:

create_sheet(title=None, index=None)

参数解释:

title:字符串,指定新工作表的名称。若不传该参数,默认名称为 "Sheet",若名称冲突则自动命名为 "Sheet1"、"Sheet2" 等;

index:整型,指定新工作表插入的位置索引(从 0 开始计数)。若不传该参数,默认将新表添加在工作簿末尾 。‌‌

创建多个新工作表的代码示例如下所示:

import openpyxl# 创建一个新的 Excel 文档wb = Workbook()# 创建多个新工作表wb.create_sheet(title = "新表1")wb.create_sheet(title = "新表2")wb.create_sheet(title = "新表3")# 保存文档wb.save("example_2.xlsx")

代码运行后,会生成 exampe_2.xlsx 文件,该文件有四个工作表。

受文章篇幅所限,下文将继续介绍 Python 处理 Office 文件‌的相关知识。

相关学习资料