python数据分析神器_python操作Excel神器openpyxl的各种操作!

ab614fa566b044518ecc80b15f02cf26

作者:陈熹

来源: 早起Python

大家好,在之前的十几篇办公自动化系列文章中,我们大多是以真实的案例需求来讲解python如何进行自动化办公操作,并且多次使用到openpyxl来处理表格,今天我们就来详细的盘点python操作Excel神器openpyxl的各种操作!

本文将以详细图表/代码的形式讲解如何对Excel进行读取、写入及样式调整,可以当成速查手册使用,随用随查,建议收藏!

安装

openpyxl是一个非标准库,因此需要自行安装,安装过程并不困难,Windows/Mac用户均可以在命令行(CMD)/终端(Terminal)中使用pip安装

pip install openpyxl

前置知识

在使用这个模块之前我们需要对Excel表格结构有个比较细致的了解,见下图:

55716905930840728eed276e5c7a95d6

简而言之,一个Excel工作簿workbook由一个或者多个工作表sheet组成,一个sheet可以看作是多个行row组成,也可以看作是多个列column组成,而每一行每一列都由多个单元格cell组成!

读取Excel

1.载入Excel

from openpyxl import load_workbook

workbook = load_workbook(filename='测试.xlsx’)

print(workbook.sheetnames)

注意load_workbook只能打开已经存在的Excel,不能创建新的工作簿

2.根据名称获取工作表

from openpyxl import load_workbook

workbook = load_workbook(filename='其他.xlsx')

print(workbook.sheetnames)

sheet = workbook['工作业务']

如果只有一张工作表也可以用:

sheet = workbook.active

3.获取表格内容所在的范围

print(sheet.dimensions)

4.获取某个单元格的具体内容

这边提供两种方法,注意都需要以cell.value形式输出具体值

044211f688784cbabfc78f523ef4d6d9

5.获取某个单元格的行、列、坐标

print(cell.row, cell.column, cell.coordinate)

6.获取多个格子的值

c956b468b8594eb694f52ce0f25297aa

这里也有一个细节,Excel中每一列由字母确定,是字符型;每一行由一个数字确定,是整型。当然,上面的三种方法都是获取一堆表格,现在要输出每一个表格的值就需要遍历:

for cell in cells:

print(cell.value)

三种方法依然有自己的局限性,如果我需要特定范围的值,且懒得换算成字母数字坐标。例如我想要获取第2行至第5行、第1列至第3列的全部单元格。因此必须掌握第4种方法:

45a1e349be914f78b0bbea29626a91a1

7.读取所有的行

for row in sheet.rows:

print(row)

Excel写入

1. 保存Excel

workbook.save(filename='Excel工作表1.xlsx')

如果读取和写入Excel的路径相同则为对原文件进行修改,

如果读取和写入Excel的路径不同则为保存成新的文件

2.写入单元格

cell = sheet['A1']

cell.value = '业务需求

3.写入一行或多行数据

a73cffc48ac141afa218f8c14afb9578

6ff0b96e8583417db51ad05c0077a60f

4.将公式写入单元格并保存

sheet['K11'] = '=AVERAGE(K1:K10)'

5.插入一行或多行

936d4de654bd4ba49604298be9c5162e

6. 插入一列或多列

75803f24ac1644ee90c7e97cf2024623

7.删除多行

c14805cf7948462296b00980ac8f778c

8.删除多列

b12a531d9e954814a8feb12a34344918

9. 移动范围数据

b87434da1ae749629f2e4d199837d72e

10. 创建新的Excel表格

from openpyxl import Workbook

workbook = Workbook()

Excel样式调整

1. 设置字体样式

1e264c90b2a04a009aed1dcb0d05c1df

2. 设置对齐样式

979090ff5d5d403e85b6c2adec9f9a40

水平对齐:distributed, justify, center, left, fill, centerContinuous, right, general

垂直对齐:bottom, distributed, justify, center, top

3. 设置边框样式

aa9120a7bb36494a8042b4dc49ee95b8

边线样式:double, mediumDashDotDot, slantDashDot, dashDotDot, dotted, hair, mediumDashed, dashed, dashDot, thin, mediumDashDot, medium, thick

4. 设置单元格填充样式

a33e6bd9e7ac4b05ad8efa312bda0d3a

5. 设置行高和列宽

sheet.row_dimensions[1].height = 50

sheet.column_dimensions['C'].width = 20

6. 单元格合并与取消

# 合并

sheet.merge_cells('A1:B2')

sheet.merge_cells(start_row=1, start_column=3,

end_row=2, end_column=4)

# 取消合并

sheet.unmerge_cells('A1:B2')

sheet.unmerge_cells(start_row=1, start_column=3,

end_row=2, end_column=4)

想从事业务型数据分析师,您可以点击>>>了解课程详情;

想从事大数据分析师,您可以点击>>>“大数据就业”了解课程详情;

想成为人工智能工程师,您可以点击>>>

想了解Python数据分析,您可以点击>>>

完 谢谢观看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值