一起学 python(三)—— 使用openpyxl操作excel表格

348 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

前言

在上一篇文章中,学会了如何批量修改文件名,这篇文章就讲讲如何操作excel表格。在日常生活中,经常与数据打交道的分析岗位,总会面临一大堆的excel表格,无论是汇总还是计算都是好几个月一起的。利用excel的vlookup的确能完成,但是工作量大,难免消耗大量时间。

我们就来通过 openpyxl 操作 excel 表格,拿到对应数据,分析的操作不就简单了吗!

一、关于创建

  1. WorkBook() 创建workbook的时候会默认创建一个worksheet
  2. 使用active就可以得到默认的worksheet
  3. 通过title 可以更改worksheet的名称
  4. 也可以通过create_sheet(name, index)新建表
  5. 可以通过sheet名字获取的表
  6. 给sheet标题/title 一个背景颜色
  7. 通过save()将工作本保存
import openpyxl
workbook = openpyxl.Workbook()
worksheet = workbook.active
worksheet.title = 'Sheet111'
worksheet2 = workbook.create_sheet('sheet2', 0) # index代表表格创建在哪,0代表最前
worksheet.sheet_properties.tabColor = 'c6c6c6'
workbook.save('new.xlsx')

二、关于修改

  1. load_workbook(path) 获取工作本,path填写相对应地址
  2. 查看所有工作表
  3. 选择工作表
  4. max_row 最大行 min_row 最小行 max_column 最大列 min_column 最小列
  5. 修改某一单元格
  6. 读取单条数据
  7. 保存工作本
import openpyxl
book1 = openpyxl.load_workbook('new.xlsx')
print(book1.sheetnames)
sheet1 = book1['Sheet111']
book1_last_row = sheet1.max_row
# 修改第一行第一列单元格为1;即 A1 = 1
sheet1.cell(row = 1,column = 1, value = 1) 
# 读取单条数据
print(sheet['A1'].value)
>>> 1
# 获取对应row 、 column 、coordinate
c = sheet.cell(row = 1, column = 1)
print('row '+c.row+', column '+c.column +', coordinate '+c.coordinate)
>>> row 1, column 1, coordinate A1
# 读取数据 第一列2~5行的数据;即A2~A5
for o in range(2, 5):
	print(sheet1.cell(row = o, column = 1).value)
# 记得修改完后需要保存
book1.save('new.xlsx')

三、关于删除

删除表 remove(sheet)

import openpyxl
book1 = openpyxl.load_workbook('new.xlsx')
worksheet = book1['sheet2']
book1.romove(worksheet) # 参数为sheet对象而非sheet名
book1.save('new.xlsx')