python-openpyxl-工作表基本操作

Python Openpyxl:Excel操作实战指南
本文详细介绍了如何使用Python的openpyxl库进行Excel文件的操作,包括创建工作表、打开工作簿、指定工作表、名称管理、工作表复制与删除,以及工作表属性的使用。通过实例演示了新建多工作表、批量改名和复制的工作流程。

创建工作表

  • Workbook方法
from openpyxl import *
file = r"D:\xlsx\lianxi_2.xlsx"
wb1 = Workbook(file)
wb1.save(file)    # 如果要另存为的话,改变save的file名字即可

打开load工作表

  • load_workbook方法
from openpyxl import *
file = r"D:\xlsx\lianxi_1.xlsx"
wb1 = load_workbook(file)
wb1.save(file)

指定工作表

  • workbook_name[worksheet_name]指定
  • 如果只有一个工作表,用workbook_name.active
ws1 = wb1["student"]
ws2 = wb1.active
ws3 = wb1.worksheets[0]
wb1.save(file)

工作表名称遍历

  • 名称用worksheet.title属性
wb1 = load_workbook(file)
for i_ws in wb1.worksheets:
    print(i_ws.title)

新建指定工作表

  • 使用create_sheet(sheet_name)
wb1 = load_workbook(file)
wb1.create_sheet("province")

删除指定工作表对象

  • 使用remove(work_sheet对象)
wb1 = load_workbook(file)
ws1 = wb1["province"]
wb1.remove(ws1)

复制指定工作表

  • 使用copy_worksheet(work_sheet对象)
wb1 = load_workbook(file)
ws1 = wb1.copy_worksheet(wb1["student"])
ws1.title = "class"
wb1.save(file)

案例

新建N张工作表

for idx in range(5):
    wb1.create_sheet("new_"+str(idx))
wb1.save(file)

批量改名称

for i_ws in wb1.worksheets:
    i_ws.title = "add_" + i_ws.title
wb1.save(file)

批量复制工作表

for idx in range(3):
    ws1 = wb1.copy_worksheet(wb1["template"])
    ws1.title = "new_" + str(idx)
wb1.save(file)

属性总结

  • active: 获取当前活动的worksheet
  • properties: 获取文档的相关数据,如创作者,日期等
  • worksheets: 以列表的额形式返回所有的worksheet
  • sheetnames: 以列表的额形式返回所有worksheet的名字
  • encoding: 返回文档的字符编码
  • read_only: 是否改写
  • data_only: 默认为flase,为true时只显示值而不显示公式

方法总结

  • workbook[worksheet_name] 指定工作表对象
  • remove(worksheet_obj) 删除工作表对象
  • copy_worksheet(worksheet_obj) 在工作簿中拷贝工作表
  • save(file) 保存
### 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、付费专栏及课程。

余额充值