Excel文件的操作
excel文件中的元素:
工作簿:一个excel文件就是一个工作簿
工作表:一个工作簿可以有多个工作表(至少一个)
单元格:单元格时excel文件保存数据的基本单位
行号和列号:可以确定单元格位置的
用python操作excel文件需要安装第三方库,openpyxl
Excel读操作
获取excel文件内容
1)打开excel文件创建工作簿对象
openpyxl.open(‘excel文件路径’)
openpyxl.load_workbook('excel文件路径‘)
# workbook = openpyxl.open('三国人物数据.xlsx')
workbook = openpyxl.load_workbook('三国人物数据.xlsx')
获取工作簿中所有的工作表的表名
result = workbook.sheetnames
print(result) # ['全部人物数据', '三个国家的武力', '三个国家武将的武力', '三国武将数据', '三国文官数据']
2)获取工作表对象
工作簿对象.active - 获取活跃表(选中的表)退出之前选中的表叫活跃表
工作簿对象.[工作簿名称] - 获取指定名字对应的工作表
sheet1 = workbook.active
print(sheet1)
sheet2 = workbook['三国武将数据']
print(sheet2)
3)获取单元格
工作表对象.cell(行号,列号)
cell1 = sheet2.cell(8, 1)
print(cell1) #<Cell '三国武将数据'.A8>
4)获取单元格内容
单元格对象.value
print(cell1.value) #蔡瑁
5)获取最大行号和最大列号(保存了数据的有效行和有效列)
工作表对象.max_row
工作表对象.max_column
print(sheet1.max_row)
print(sheet1.max_column)
获取第一列所有数据
column1 = []
for i in range(1, sheet2.max_row + 1):
cell2 = sheet2.cell(i, 1)
column1.append(cell2.value)
print(column1
思路步骤:打开工作簿,选中工作表(工作簿对象[工作表名]),选择单元格(工作表对象.cell),读取单元格(单元格对象.value)
Excel文件写操作
注意:不管是以什么样的方式对excel进行写操作,操作完成后必须保存。
1.新建工作簿
1)新建工作簿对象
workbook = openpyxl.Workbook()
2)保存
工作簿对象.save(文件路径)
workbook.save('files/student.xlsx')
实际中新建工作簿的时候需要先判断工作簿对应的文件是否已经存在,存在就不需要新建,不存在才新建
# 方法一:
try:
workbook = openpyxl.open('files/student2.xlsx')
except FileNotFoundError:
workbook = openpyxl.Workbook()
workbook.save('files/student2.xlsx')
# 方法二:
import os
# os.path.exists(文件路径) - 判断指定文件是否存在,存在返回True,不存在返回False
if os.path.exists('files/student2.xlsx'):
workbook = openpyxl.open('files/student2.xlsx')
else:
workbook = openpyxl.Workbook()
workbook.save('files/student2.xlsx')
2.工作表的写操作
1)新建工作表
工作簿对象.create_sheet(表名, 下标)
workbook.create_sheet()
workbook.create_sheet('Python')
workbook.create_sheet('Java', 0)
workbook.save('files/student2.xlsx')
实际中的新建表:没有的时候才新建,有的时候直接打开
if 'Python' in workbook.sheetnames:
sheet = workbook['Python']
else:
sheet = workbook.create_sheet('Python')
workbook.save('files/student2.xlsx')
2)删除工作表
工作簿对象.remove(工作表对象)
workbook.remove(workbook['Sheet1'])
workbook.save('files/student2.xlsx')
3.单元格的写操作
单元格对象.value = 数据
java_sheet = workbook['Java']
java_sheet.cell(1, 3).value = '电话'
java_sheet.cell(2, 1).value = None
java_sheet.cell(4, 2).value = 'stu003'
workbook.save('files/student2.xlsx')