python快速处理excel_Python处理Excel快速上手

本文介绍如何使用Python的openpyxl模块高效处理Excel表格数据,包括读取、编辑及计算功能,显著提升日常工作流程。

前言

无论是程序员还是其他的工作岗位每天我们都会和大量的表格接触。处理表格数据有可能会占据我们比较多的时间。那么怎么优化我们工作,提高工作效率。2个小时的工作,怎么缩短到十几分钟搞定。基于这个出发点,Python是否能够帮助到我们呢?

Excel 是 Windows 环境下流行的、强大的电子表格应用。openpyxl模块让 Python程序能读取和修改 Excel电子表格文件。例如,可能有一个无聊的任务,需要从一个电子表格拷贝一些数据,粘贴到另一个电子表格中。

或者可能需要从几千行中挑选几行,根据某种条件稍作修改。或者需要查看几百份部门预算电子表格,寻找其中的赤字。正是这种无聊无脑的电子表格任务,我们可以借助 Python 来完成。

安装

pip工具升级

这里面需要注意如果想要安装openpyxl模块,我们的pip版本必须升级到20.1.1。如果我们直接 pip install openpyxl此时会给我们报一个警告。在命令行中直接升级pip工具的版本即可。

python -m pip install --upgrade pip

复制代码

8893bcce93ecfdd40816e5fb322602e9.png

出现红色框中的内容就证明我们的pip工具版本升级成功了

安装openpyxl

pip install openpyxl

复制代码

如果通过普通的方式无法安装openpyxl模块,我们可以借助还源的方式来安装,在这里我们推荐的是豆瓣源

pip install openpyxl -i https://pypi.douban.com/simple

复制代码

efed731bae0686abfe64d68cae9feea4.png

通过还源安装还是非常快的。准备工作已经做完,我们就开始来使用一下这个openpyxl模块来上手处理Excel表格

openpyxl模块的使用

读取Excel文档

新建一个text.xlsx文档可以直接放到我们项目的当前文件夹下。Excel 自动为新工作簿提供的3 个默认的表,名为 Sheet1、Sheet2 和 Sheet3。如下图

5ea51c07b11d5c5acf8840348582affc.png

在openpyxl中,主要用到三个概念:Workbooks,Sheets,Cells。Workbook就是一个excel工作表;Sheet是工作表中的一张表页;Cell就是简单的一个格。openpyxl就是围绕着这三个概念进行的,不管读写都是“三板斧”:打开Workbook,定位Sheet,操作Cell。

实例代码演示

import openpyxl

wb = openpyxl.load_workbook('text.xlsx')

print(type(wb)) #

复制代码

在penpyxl.load_workbook()函数接受文件名,返回一个workbook 数据类型的值。这个workbook 对象代表这个 Excel 文件

读取Excel文档工作薄

import openpyxl

wb = openpyxl.load_workbook('text.xlsx')

# 获取所有的工作薄

sheet_name = wb.get_sheet_names()

print(sheet_name) # ['Sheet1','Sheet2','Sheet3']

# 获取某一个工作薄

sheet1 = wb.get_sheet_by_name('Sheet1')

print(sheet1) #

# 获取工作薄名称

print(sheet1.title) # Sheet1

复制代码

访问表格数据

有了 Worksheet 对象后,就可以按名字访问 Cell 对象

import openpyxl

wb = openpyxl.load_workbook('text.xlsx')

sheet = wb.get_sheet_by_name('Sheet1')

a1 = sheet['A1']

print(a1) #

a1_value = sheet['A1'].value

print(a1_value) # 14:00:00

b1_value = sheet['B1'].value

print(b1_value) # KFC

c1_value = sheet['C1'].value

print(c1_value) # 1

复制代码

openpyxl核心模块Workbook

在openpyxl中有一个核心模块Workbook可以更好的来帮助我们操作excel文件

创建一张新电子表

from openpyxl import Workbook

import datetime

wb = Workbook()

ws = wb.get_sheet_by_name('Sheet')

# 设置工作薄名称

ws.title = 'python'

# 设置内容

ws['A1'] = 'Hello World'

ws['A2'] = datetime.datetime.now()

wb.save('new_text.xlsx')

复制代码

d9ece64b803ae4e4600d41a1dda0e350.png

openpyxl模块对电子表格进行运算操作

下面表格有如下数据

5ae302048dade043c45a5c231ab4db21.png

我想通过openpyxl计算三门学科的平均分以及总分

import openpyxl

from openpyxl.styles import Alignment

def process_worksheet(sheet):

avg_column = sheet.max_column + 1 # 平均数,存放在最后一列

sum_column = sheet.max_column + 2 # 求和,存放在最后第二列

for row in sheet.iter_rows(min_row=2, min_col=2):

scores = [cell.value for cell in row] # 获取一行的值

sum_score = sum(scores) # 求一行的和

avg_score = sum_score / len(scores) # 求一行的平均数

avg_cell = sheet.cell(row=row[0].row, column=avg_column)

sum_cell = sheet.cell(row=row[0].row, column=sum_column)

avg_cell.value = avg_score # 定位到单元格,设置总分

sum_cell.value = sum_score # 定位到单元格,设置平均分

# 设置对齐方式,水平是右对齐,垂直是居中

align = Alignment(horizontal='left', vertical='center', wrap_text=True)

avg_cell.alignment = align

sum_cell.alignment = align

# 设置平均分和总分的标题

sheet.cell(row=1, column=avg_column).value = '平均分'

sheet.cell(row=1, column=sum_column).value = '总分'

def main():

wb = openpyxl.load_workbook('new_text.xlsx')

sheet = wb.get_sheet_by_name('python')

process_worksheet(sheet)

wb.save('new_text.xlsx')

if __name__ == '__main__':

main()

复制代码

运行效果

d8641c55d0ed7393fc58b2fb52b42c68.png

通过这篇文章相信大家已经基本掌握了openpyxl模块的使用,通过openpyxl我们可以读取Excel的数据,添加Excel的数据。并且来计算Excel的数据,后续还会更新更多有关于自动化办公的内容,希望通过Python的学习能够让你的办公效率事半功倍

fa37af8d6737297a0c006be38321b2de.png

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值