day7 openpyxl操作excle文件总结

day7 openpyxl 操作Excle文件

  • Excle相关的基本概念
    • 工作簿(WorkBook):一个Excel文件就是一个工作簿

    • 工作表(Sheet):数据是以单元格为单位保存到工作表中,一个工作簿中可以一个或者多个工作表(至少一个)

    • 单元格(Cell):工作表中的每一个格子

一、openpyxl读Excle操作

1.打开Excle 文件
  • openpyxl.open_workbook(文件路径)
  • openpyxl.lood_workbook文件路径)
2、获取工作簿中所有工作表的表名
  • 工作簿对象.sheetnames
names = wb.sheetnames
3、获取工作表
  • 工作簿对象.active – 获取当前Excle文件中的活跃表
  • 工作簿对象[表名] – 获取指定表名对应的工作簿
sheet1 = wb.active
print(sheet1)

sheet2 = wb['原始数据']
print(sheet2)
4、获取最大行数和列数
  • 工作表.max_row — 获取指定工作表中最大的行数
  • 工作表.max_column – 获取指定工作表中最大的列数
m_r = sheet2.max_row
m_c = sheet2.max_column
print(m_r,m_c)
5、获取单元格
  • 工作表.cell(行号,列号)
cell1 = sheet2.cell(2,1)
print(cell1)
cell2 = sheet2.cell(19,3)
6、获取单元格内容
  • 单元格.value
print(cell1.value,cell2.value)

二、获取Excle文件中的数据

# 1.在excle文件中获取每个学生的值
for row in range(1,sheet.max_row+1):
    for col in range(1, sheet.max_column + 1):
        cell = sheet.cell(row,col)
        print(cell.value)
        
# 2.获取每个学生的所有成绩,保存到一个列表中,列表中的元素是字典
wb = openpyxl.load_workbook('files/data.xlsx')
sheet = wb['原始数据']
all_student = []
for row in range(2, sheet.max_row + 1):
    stu = {}
    for col in range(1, sheet.max_column + 1):
        dat_cell = sheet.cell(row, col)
        key_cell = sheet.cell(1, col)
        stu[key_cell.value] = dat_cell.value
    all_student.append(stu)
print(all_student)


三、Excle写操作

import openpylx

1、创建工作簿
wb = openpyxl.Workbook() # 方法一 
wb1 = openpyxl.load_workbook('files/data.xlsx')   # 方法二
2、新建工作表
  • 使用默认名字新建工作表
sheet1 = wb.create_sheet()
  • 使用指定的名字新建工作表
sheet2 =wb.create_sheet('student')
  • 在指定位置前插入指定名字的工作表
sheet3= wb.create_sheet('teacher',0)
  • 在已经存在的工作簿中新建工作表
if '电影信息' in wb1.sheetnames:
    sheet4 = wb1.create_sheet('电影信息')
3、删除工作表
  • 工作簿.remove(工作簿对象)
if 'sheet1' in wb1.sheetnames:
    wb1.remove(wb1['sheet1'])  #判断是否在,在就删除
4、修改单元格内容
  • 单元格对象.value = 数据

    • 增加的内容

      sheet5 = wb1['原始数据']
      sheet5.cell(1,6).value = '平均分'
      
    • 修改内容

      sheet5.cell(6,2).value = ('缺考')
      
    • 删除内容

      sheet5.cell(2,2).value = None
      
4、对文件进行保存
         ```python
         wb.save('files/data2.xlsx')
         wb1.save('files/data.xlsx')
         ```
5、练习
# 将这个字典里的数据转换为excle
# 创建excel文件叫 : python数据分析.xlsx
# 在新excel文件中新建一张表:学生信息
# 将上面的数据以下面的形式写到到 学生信息表中


data = [
  {'姓名': '李楠', '英语': 78, '办公软件操作': 96, '电子商务': 73, '计算机基础': 79},
  {'姓名': '方鹏', '英语': 63, '办公软件操作': 94, '电子商务': 91, '计算机基础': 78},
  {'姓名': '李磊', '英语': 89, '办公软件操作': 65, '电子商务': 0, '计算机基础': 0},
  {'姓名': '王小若', '英语': 81, '办公软件操作': 77, '电子商务': 73, '计算机基础': 80},
  {'姓名': '陈雨', '英语': 0, '办公软件操作': 87, '电子商务': 84, '计算机基础': 88},
  {'姓名': '石璐', '英语': 91, '办公软件操作': 95, '电子商务': 84, '计算机基础': 80},
  {'姓名': '张瑛', '英语': 73, '办公软件操作': 92, '电子商务': 92, '计算机基础': 89},
  {'姓名': '程晓', '英语': 80, '办公软件操作': 86, '电子商务': 0, '计算机基础': 0},
  {'姓名': '王丽', '英语': 72, '办公软件操作': 55, '电子商务': 88, '计算机基础': 70},
  {'姓名': '赵军力', '英语': 69, '办公软件操作': 69, '电子商务': 63, '计算机基础': 76},
  {'姓名': '王明', '英语': 96, '办公软件操作': 80, '电子商务': 85, '计算机基础': 64},
  {'姓名': '李丽', '英语': 64, '办公软件操作': 0, '电子商务': 74, '计算机基础': 86},
  {'姓名': '张帆', '英语': 72, '办公软件操作': 64, '电子商务': 97, '计算机基础': 74},
  {'姓名': '张珊珊', '英语': 60, '办公软件操作': 95, '电子商务': 69, '计算机基础': 61},
  {'姓名': '刘丽丽', '英语': 78, '办公软件操作': 93, '电子商务': 81, '计算机基础': 0},
  {'姓名': '石节庆', '英语': 62, '办公软件操作': 63, '电子商务': 64, '计算机基础': 70},
  {'姓名': '路瑶', '英语': 0, '办公软件操作': 0, '电子商务': 0, '计算机基础': 63},
  {'姓名': '李贵明', '英语': 84, '办公软件操作': 90, '电子商务': 87, '计算机基础': 99}
]

import openpyxl
import os
# 1.如果对应的excel文件已经存在就打开这个文件,不存在就创建
if os.path.exists('files/python数据分析.xlsx'):
  wb = openpyxl.load_workbook('files/python数据分析。xlsx')
else:
  wb = openpyxl.Workbook()
# 2.如果学生信息表已经存在就获取这个表,如果不存在就创建这个表
if '学生信息' in wb.sheetnames:
  stu_sheet = wb['学生信息']
else:
  stu_sheet = wb.create_sheet('学生信息')
# 3.将数据写入到表中
# # 1)将表头(第一行内容写入到工作表中

col = 1
for key in data[0]:
  # print(key,col)
  stu_sheet.cell(1,col).value = key
  col += 1
# 2)从第二行开始写入所有的学生信息
row = 2
for stu in data:
  # print(stu, row)
  col = 1
  for key in stu:
      stu_sheet.cell(row, col).value = stu[key]
      col += 1
  row += 1
# 保存数据
# wb.save('files/python数据分析.xlsx')


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值