说明

码云地址:http://yumos.gitee.io/openpyxl3.0
本文档是我在学习openpyxl时期下载下载并按照自己的理解翻译了一部分,文档是完整的;翻译的部分仅仅包括读写,后边的图表等高级的操作暂时没用到,所以没有翻译.

0.简介

Workbook:指一个工作簿,也就是一个单独的XLSX文件:
在这里插入图片描述
Worksheet:指一个sheet页:
在这里插入图片描述
sheetName:sheet页的名称:
在这里插入图片描述
rowcell:行 和 单元格:
在这里插入图片描述

1.安装

# 使用pip安装即可
pip install openpyxl

2.简单使用

推荐读文件的时候使用只读模式,速度会快很多;不建议使用可读写模式操作xlsx文件,慢的很;读和写分开会好一些。

2.1 读取xlsx

思路:
在这里插入图片描述
简单示例:

from openpyxl import load_workbook
# fileName 这里是指文件路径
fileName = "工作簿.xlsx"
# 以只读模式打开工作簿
wb = load_workbook(filename = fileName,read_only = True)
# sheetName 就是 sheet页的名称
sheetName = "Sheet1"
# 通过 工作表名 获取 工作表
ws = wb[sheetName]
# 按行读取 工作表的内容
for row in ws.rows:
    for cell in row:
        print(cell.value)

2.2 保存xlsx

思路:
在这里插入图片描述
简单示例:

from openpyxl import Workbook
# 创建workbook对象,写入模式
wb = Workbook(write_only=True)
# 删除默认创建的一个sheet页
ws = wb['Sheet']
wb.remove(ws)
# 给sheet页命名
sheetName = "工作表1"
# 1.创建sheet页
ws = create_sheet(sheetName)
# 构造 测试数据
row = ["A11","A12","A13"]
# 2.向工作表中 按行添加数据
ws.append(row)
# filePath 是指保存的 excel 文件路径
filePath = "新工作簿.xlsx"
# 3.保存xlsx
wb.save(filePath)

3.主要方法介绍

创建工作簿

# 在内存里创建号工作表之后, 表内不包含任何 单元格. 当第一次 访问它们的时候,才会被创建
# 创建在内存中,调用save方法才能保存在本地
wb = Workbook()

创建工作表

# sheet页名称为Mysheet
ws = wb.create_sheet("Mysheet")
# 在最前端插入
# ws = wb.create_sheet("Mysheet", 0)

设置sheet页名称

ws.title = "表名"

获取工作表对象

# 通过表名获取
ws = wb["表名"]
# 获取活动的工作表,这个工作表默认指向索引为0,除非你手动更改为其他的值。 否则你只能 使用该方法来获取第一个工作表(worksheet)
# ws = wb.active

打印工作表名称

# ["Sheet1","Sheet2","Sheet3"]
# 方法1
print(wb.sheetnames)
# 方法2
for sheet in wb:
    print(sheet.title)

访问一个单元格

# 访问A列4行的单元格,不存在则创建
c = ws['A4']
# 还有Worksheet.cell()方法,赋值(4,1)值为10
d = ws.cell(row=4, column=1, value=10)

访问多个单元格

# A1~C2 2行3列所有的单元格
cell_range = ws['A1':'C2']

遍历行

# 使用 Worksheet.iter_rows() A1,B1,C1,A2,B2,C2
for row in ws.iter_rows(min_row=1, max_col=3, max_row=2):
    for cell in row:
        print(cell)

遍历列(只读模式下不可用):

# 使用 Worksheet.iter_cols() A1,A2,B1,B2,C1,C2
for col in ws.iter_cols(min_row=1, max_col=3, max_row=2):
     for cell in col:
         print(cell)

获取所有工作行

# 按行为单位
rows = Worksheet.rows
# row1,row2,row3,row4,...

获取所有列:

# 按列为单位
cols = Worksheet.columns
# col1,col2,col3,col4,...
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐