如何使用 Python 进行 Excel 表格处理详细教程(整合表格、内容调整、定位更新等等)

本文介绍了如何使用Python的openpyxl库来读取、创建、修改和保存Excel文件。首先讲解了openpyxl的安装,然后详细阐述了如何读取和创建Excel工作簿,以及操作工作表和单元格。通过实例展示了读取单元格数据、遍历表格内容和更新数据的方法。最后,文章提到了openpyxl读取单元格的特性,并提供了遍历单元格的代码示例。

在机器学习模型的建立中,不得不借助于Excel强大的统计分析能力,这个时候就牵涉到了如何将python直接处理得到的数据存入excel表格当中以及获取表格的数据进行分析,简单的说,学会使用Python操作Excel文件后,可以运用到机器学习之中,也可以让平常生活中繁琐的工作自动化处理。

openpyxl 安装

Python处理Excel的包是openpyxl,如果你是直接下载的anaconda安装的Python库,那么下载的时候,自带的就已经安装了openpyxl,如果不是,也可以直接在cmd之中,使用pip install openpyxl安装。

安装完成之后,我们应该了解一下Excel的组成部分,如下图所示:
在这里插入图片描述

openpyxl 读取 excel

看到上图就应该知道,首先,我们应该获取Excel文件:

import openpyxl as openpyxl

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

读取excel文件常见问题解决:

raise IOError("File contains no valid workbook part")

OSError: File contains no valid workbook part

原因:用openpyxl 模块读取了xls格式的excel,或者读取的是xls文件通过改变后缀变成xlsx格式的文件

解决:重新创建xlsx的文件


zipfile.BadZipFile: File is not a zip file

之前的文件另存为就解决了这个问题,然后把包名也换了,然后就不报错了

对于已经有Excel目标文件来说,使用以上方法,就可以直接获取excel文件,如果你想重新创建一个全新的Excel文件:

wb = openpyxl.Workbook()

已经获取了Excel,但其实我们的数据都在一个一个的表中,如下图所示:
在这里插入图片描述
一个Excel文件中可以有多个表,一般而言操作的都是第一个表,而获取表的方法也有很多,比如:

sheet = wb.worksheets[0]
 
sheet = wb['sheet1']

以上两种方式都是获取第一个表,要是我们使用wb=openpyxl.Workbook()方式,新创建的一个Excel呢?我们需要创建一个操作的表格:

wb.create_sheet(index=0,title='小猪')
 
wb.create_sheet(index=1,title='佩奇')

读取 excel 表数据

当我们获取表格之后,就可以快乐的操作我们的数据了。

比如这个时候,你想获取表格中的A1单元格中的文本,就可以使用如下方法:

import os
from openpyxl import Workbook
from openpyxl import load_workbook

filename = 'my_excel.xlsx'
if os.path.exists(filename):
    wb = load_workbook(filename)
else:
    wb = Workbook()


sheet = wb.worksheets[0]
sheet = wb['Sheet1']

print(sheet['B2'].value)

输出结果展示:
在这里插入图片描述
要遍历某个表格中的所有数据,该怎么操作呢?这里我们先假如我有如下表格:
在这里插入图片描述
那么遍历起来的代码如下:

import os
from openpyxl import Workbook
from openpyxl import load_workbook

filename = 'my_excel.xlsx'
if os.path.exists(filename):
    wb = load_workbook(filename)
else:
    wb = Workbook()

sheet = wb.worksheets[0]
sheet = wb['Sheet1']
for row in sheet.iter_rows():
    for cell in row:
        print(cell.coordinate, cell.value) #  坐标; 值

上面是逐行遍历,首先我们获取Excel文件,然后获取当中的第一个表格,然后通过获取行数,以及列数进行遍历,openpyxl获取行数的方法为sheet.iter_rows(),获取列数可以直接通过当前行获取也就是for cell in row,代码简洁明了,实现效果如下:
在这里插入图片描述

更新 excel 表数据

那么怎么修改数据呢?我们先来看看代码:

sheet['A1'].value = '唤醒手腕'
sheet.cell(1, 1).value = '唤醒手腕'
sheet.cell(1, 1, '唤醒手腕')

这三种方式,都可以修改Excel某个单元格数据,同时也可以通过前两种方式获取到这个单元格的值,python的优点就是这么简单明了。

经过这些操作之后,我们还有一个事情要做,那就是如果保存我们创建,或者修改过后的Excel,其实也很简单,一句话就可以做到,代码如下:

wb.save('new_my_excel.xlsx')

excel 单元格遍历

单元格遍历

ws.values 返回的是生成器,是将一行数据作为一个元组单元组成的,是由值组成的

ws.values 获取的内容是从 “A1” 到 “最大行最大列”

ws.values # <generator object values at 0x00000297EAB07F68>

for item in sheet.values:
    print(item)
    
"""
('index', 'name', 'school', 'age')
(1, '唤醒手腕', '清华大学', 20)
(2, '菠萝吹雪', '浙江大学', 22)
(3, '麦克劳林', '武汉大学', 24)
"""
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唤醒手腕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值