package4 | cabbage

cabbage

菜鸟写给小白的教程

0%

package4

excel文件

工作簿:一个excel文件就是一个工作簿

工作表:一个工作簿中可以有多个工作表(至少一个)

单元格:单元格是excel文件保存数据的基本单位

行号和列号:可以确定单元格位置

import openpyxl

excel读操作

1)打开excel文件创建工作簿对象

openpyxl.open(excel文件路径)

openpyxl.load_workbook(excel文件路径)

1
2
3
4
5
import openpyxl

workbook = openpyxl.open('excel_file/三国人物数据.xlsx')
# 或者
workbook = openpyxl.load_workbook('excel_file/三国人物数据.xlsx')

2)获取工作表

工作簿对象.active - 获取活跃表(选中的表)

工作簿对象[工作表名称] - 获取指定名字对应的工作表

1
2
3
4
5
sheet1 = workbook.active
print(sheet1)

sheet2 = workbook['工作表名称']
print(sheet2)

如果要获取工作簿中所有的工作表表名

workbook.sheetnames

1
2
result = workbook.sheetnames
print(result)

3)获取单元格

工作表对象.cell(行号, 列号)

1
2
3
cell1 = sheet2.cell(8, 1)
cell2 = sheet2.cell(12, 1)
print(cell1, cell2)

4)获取单元格内容

单元格对象.value

1
2
print(cell1.value)
print(cell2.value)

5)获取最大行号和最大列号(保存了数据的有效行和有效列)

工作表对象.max_row

工作表对象.max_column

1
2
print(sheet2.max_row)
print(sheet2.max_column)

excel文件写操作

1
注意:不管是以什么样的方式对excel进行写操作,操作完成之后必须保存

(一)新建工作簿

1)新建工作簿对象

openpyxl.Workbook()

例如:

1
workbook = openpyxl.Workbook()

2)保存

工作簿对象.save(文件路径)

实际中新建工作簿的时候需要先判断工作簿对应的文件是否已经存在,存在就不需要新建,不存在才新建

法一

1
2
3
4
5
try:
workbook = openpyxl.open('excel_file/student2.xlsx')
except FileNotFoundError:
workbook = openpyxl.Workbook()
workbook.save('excel_file/student2.xlsx')

法二

os.path.exists(文件路径) - 判断指定文件是否存在,存在返回True,不存在返回False

1
2
3
4
5
6
7
import os

if os.path.exists('excel_file/student2.xlsx'):
workbook = openpyxl.open('excel_file/student2.xlsx')
else:
workbook = openpyxl.Workbook()
workbook.save('excel_file/student2.xlsx')

(二)工作表的写操作

1)新建工作表

工作簿对象.create_sheet(表名, 下标)

实际中的新建表:没有的时候才新建,有的时候直接打开

1
2
3
4
5
if 'Python' in workbook.sheetnames:
sheet = workbook['Python']
else:
sheet = workbook.create_sheet('Python')
workbook.save('excel_file/student2.xlsx')

2)删除工作表

工作簿对象.remove(工作表对象)

1
2
workbook.remove(workbook['Sheet1'])
workbook.save('excel_file/student2.xlsx')

实际中删除表:存在的时候才能删

1
2
3
if 'Sheet1' in workbook.sheetnames:
workbook.remove(workbook['Sheet1'])
workbook.save('excel_file/student2.xlsx')

(三)单元格的写操作

单元格对象.value = 数据

1
2
3
4
5
6
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('excel_file/student2.xlsx')