day 07 openpyxl读写excel文件
- excel相关基本概念:
- 一个excel文件就是一个工作簿
- 工作簿下方的 sheet n 就是工作表,一个工作簿中至少一个工作表
- 行:一行数据又叫一条记录 - 行号(1,2,3,4,…)
- 列:一列数据 - 列号(A-Z)
- excel文件的分类:
- .xsl 老版本
- .xsl 新版本
- openpyxl库适用范围:
- 新版本的 .xslx 文件
一、openpyxl读excel文件
-
打开excel文件,获得一个工作簿对象
- openpyxl.open(excel文件路径)
- openpyxl.load_workbook(excel文件路径)
import openpyxl wb = openpyxl.load_workbook('files/data.xlsx')
-
获取工作簿中所有工作表的表名
- 工作簿对象.sheetnames
names = wb.sheetnames print(names)
-
获取工作表
- 工作簿.active - 获取当前excel文件中的活跃表(被选中的那张表)
- 工作簿[表名] - 获取指定表名对应的工作表
sheet1 = wb.active print(sheet1) sheet2 = wb['原始数据'] print(sheet2)
-
获取最大行数和列数
- 工作表.max_row - 获取指定工作表中的最大行数
- 工作表.max_column - 获取指定工作表中最大的列数
m_r = sheet2.max_row m_c = sheet2.max_column print(m_r, m_c)
-
获取单元格
- 工作表.cell(行号, 列号)
cell1 = sheet2.cell(2, 1) cell2 = sheet2.cell(19, 3)
-
获取单元格中内容
- 单元格. value
print(cell1.value, cell2.value)
二、excel写操作
- 创建工作簿(创建一个excel文件)
import openpycxl
import os
# 创建一个新的工作簿
if os.path.exists('files/data2.xlsx'):
wb1 = openpyxl.load_workbook('files/data2.xlsx')
else:
wb1 = openpyxl.Workbook()
# 打开另一个已经存在的一个工作簿
wb2 = openpyxl.load_workbook('files/data.xlsx')
-
新建工作表
- 工作簿.creat_sheet(表名)
# 创建名为 student 的工作表 sheet1 = wb1.create_sheet('student') # 创建默认表名的工作表 sheet2 = wb1.create_sheet() # 在指定位置前插入指定名字的工作表 sheet3 = wb1.create_sheet('teacher', 0) # 在已经存在的工作簿中新建表 if '电影信息' not in wb2.sheetnames: sheet4 = wb2.create_sheet('电影信息')
-
删除工作表
- 工作簿.remove(工作表对象)
if sheet1 in wb2.sheetnames: wb2.remove(wb2['sheet1'])
-
修改单元格内容
- 单元格对象.value = 数据
sheet5 = wb2['原始数据'] sheet5.cell(1, 6).value = '平均分' #(1,6)原本无数据,新增 sheet5.cell(6, 2).value = '(缺考)'
-
删除单元格内数据
sheet5.cell(2, 2).value = None
-
对excel文件进行保存操作
- 工作簿.save(路径+名字)
wb1.save('files/data2.xlsx') wb2.save('files/data.xlsx')
- 安装第三方库
- pip install 第三方库名称名 -i国内镜像地址
- eg:pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple