Python-Openpyxl

一、安装与环境

xlsx 是 Microsoft Excel 使用的开放 XML 电子表格文件格式的文件扩展名。 xlsm文件支持宏。 xlsx 是专有的二进制格式,而 xlsx 是基于 Office Open XML 格式的。

使用pip3工具安装openpyxl。

$ sudo pip3 install openpyxl

二、Openpyxl 创建新文件

使用openpyxl创建一个新的 xlsx 文件。

#!/usr/bin/env python

#从Openpyxl模块,我们导入Workbook类。工作簿是文档所有其他部分的容器。
from openpyxl import Workbook

book = Workbook()  #创建一个新的工作薄,始终使用至少一个工作表创建一个工作簿。
sheet = book.active  #获得对活动工作表的引用

三、Openpyxl 写入单元格

写入单元格有两种基本方法:使用工作表的键(例如 A1 或 D3),或通过cell()方法使用行和列表示法。

#方法一:使用工作表的键(例如 A1 或 D3),
sheet['A1'] = 1
#方法二:通过cell()方法使用行和列表示法
sheet.cell(row=2, column=2).value = 2 #写入单元格 B2

四、Openpyxl 附加值

使用append()方法,我们可以在当前工作表的底部附加一组值。

#!/usr/bin/env python

from openpyxl import Workbook

book = Workbook()
sheet = book.active

#数据存储在元组的元组中
rows = (
    (88, 46, 57),
    (89, 38, 12),
    (23, 59, 78),
    (56, 21, 98),
    (24, 18, 43),
    (34, 15, 67)
)

#逐行浏览容器,并使用append()方法插入数据行
for row in rows:
    sheet.append(row)

五、OpenPyXL 读取表格数据

sample.xlsx文件中读取先前写入的数据

#!/usr/bin/env python
import os
from openpyxl import load_workbook

if __name__ == '__main__':

    cur_path = os.path.abspath(os.path.dirname(__file__)) #获取当前项目的根目录

    Read_Book = load_workbook(cur_path + r'/Document/sample.xlsx') #使用load_workbook()方法打开文件

    Read_sheet = Read_Book.active

    #读取单元格
    #读取 A1,A2 和 A3 单元的内容,
    a1 = Read_sheet['A1']
    a2 = Read_sheet.cell(row=2, column=1) #使用cell()方法获取 A2 单元格的值

    print("A1:", a1.value)
    print("A2:", a2.value)
    print("A3:", Read_sheet['A3'].value)

    #读取多个单元格
    #使用范围运算从两列读取数据
    cells = Read_sheet['A1': 'B3']
    for c1, c2 
### openpyxl 库的安装与功能概述 openpyxl 是一个用于处理 Excel 文件的强大 Python 库,支持 `.xlsx` 和 `.xlsm` 格式的文件。它不仅能够读取和写入 Excel 文件,还提供了丰富的功能,如合并单元格、设置字体样式、添加图表等。要使用 openpyxl,首先需要通过 pip 安装它: ```bash pip install openpyxl ``` 安装完成后,就可以开始利用 openpyxl 进行各种操作了。 ### 使用 openpyxl 读取 Excel 文件 要读取一个现有的 Excel 文件,可以使用 `load_workbook` 函数。这个函数会加载整个工作簿,允许进一步的操作。例如,加载一个名为 `example.xlsx` 的文件并访问其中的工作表,可以通过以下代码实现: ```python from openpyxl import load_workbook # 加载现有工作簿 wb = load_workbook('example.xlsx') # 获取活动的工作表 ws = wb.active # 打印工作表中 A1 单元格的内容 print(ws['A1'].value) ``` 这段代码展示了如何加载一个已存在的 Excel 文件,并获取活动工作表中的特定单元格内容。 ### 使用 openpyxl 写入 Excel 文件 除了读取 Excel 文件,openpyxl 还能创建新的 Excel 文件并向其中写入数据。创建一个新的工作簿并保存到磁盘上的过程如下所示: ```python from openpyxl import Workbook # 创建一个新的工作簿对象 wb = Workbook() # 获取活动的工作表 ws = wb.active # 在 A1 单元格写入数据 ws['A1'] = "Hello" # 在 B1 单元格写入数据 ws['B1'] = "World" # 保存工作簿到磁盘 wb.save("hello_world.xlsx") ``` 此代码段创建了一个新的 Excel 文件,并在第一个工作表的 A1 和 B1 单元格中分别写入了 "Hello" 和 "World",然后将文件保存为 `hello_world.xlsx`。 ### 高级功能:合并单元格、设置样式和生成图表 openpyxl 提供了许多高级功能,使得 Excel 文件的处理更加灵活。例如,合并单元格可以通过调用 `merge_cells` 方法完成;设置单元格样式则涉及创建 `Font`、`Alignment` 等对象,并将其应用到特定的单元格上;生成图表则是通过创建 `BarChart`、`PieChart` 等对象,并将这些图表添加到工作表中来实现的。以下是合并单元格的一个简单示例: ```python from openpyxl import Workbook from openpyxl.styles import Font, Alignment # 创建一个新的工作簿对象 wb = Workbook() ws = wb.active # 合并 A1 到 D1 的单元格 ws.merge_cells('A1:D1') # 设置合并后的单元格的值 ws['A1'] = 'Merged Cell' # 创建一个字体对象,设置为加粗 font_bold = Font(bold=True) # 创建一个对齐对象,设置水平居中 alignment_center = Alignment(horizontal='center') # 应用字体和对齐方式到 A1 单元格 ws['A1'].font = font_bold ws['A1'].alignment = alignment_center # 保存工作簿 wb.save('merged_cells.xlsx') ``` 上述代码创建了一个新的 Excel 文件,并在其中实现了单元格的合并、文本的设置以及样式的应用。 ### 性能考量 尽管 openpyxl 拥有丰富的功能,但在处理大量数据时,其性能可能不如其他一些库,如 xlwt。根据测试结果,当数据量超过1000条时,openpyxl 的写入速度增长得比 xlwt 更快,这意味着对于大规模数据集的处理,可能需要考虑性能因素[^4]。 ### 其他特性 openpyxl 支持多种 Excel 文件格式,包括 `.xlsx` 和 `.xlsm`,但它不支持旧版的 `.xls` 格式。此外,openpyxl 不依赖于 Excel 应用程序本身,这使得它可以在任何支持 Python 的环境中运行,而无需额外安装 Microsoft Office[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值