如何使用Python操作Excel文件?看这篇博客就够了!

news/2024/7/21 7:29:07 标签: python, excel

前言

如何使用Python操作Excel文件?看这篇博客就够了!

在工作中,我们经常需要处理和分析数据。而Excel作为一种广泛使用的数据分析工具,被很多人所熟知。但是,对于一些非技术背景的用户来说,如何操作Excel却可能有些困难。这时候,Python就成为了一种非常有用的工具。

本文将介绍如何使用Python对Excel文件进行读写操作。首先,我们将介绍Python中可以使用的第三方库xlrdxlwtxlutils,并通过示例来展示“如何使用xlwt库来将数据写入到Excel文件中”、“如何使用xlrd库来读取一个Excel文件的数据”和“如何使用三个库的配合来进行一边读取一边写入的操作”。

通过本文的介绍,你将会了解到:

  • 如何获取单元格的值;
  • 如何遍历整个工作表;
  • 如何创建新的工作表和单元格,并将数据写入到单元格中;
  • 如何使用save()方法保存Excel文件到磁盘上。

如果你想学习如何使用Python操作Excel文件,那么这篇文章就是为你准备的。希望它能帮助你更好地理解和应用这个工具。

1、写入Excel文件

首先来学习下,随机生成数据,写入一个Excel文件并保存,所使用到的库,是xlwt,安装命令pip install xlwt ,安装简单方便,无依赖,很快。

1.1、新建一个WorkBook对象

python">import xlwt
wb = xlwt.Workbook()

1.2、新建sheet

python">sheet = wb.add_sheet('第一个sheet')

1.3、写数据

python">head_data = ['姓名','地址','手机号','城市']
for head in head_data:
    sheet.write(0,head_data.index(head),head)

write函数写入,分别是x行 x列 数据,头部数据永远是第一行,所以第0行。数据的列,则是当前数据所在列表的索引,直接使用index函数即可。

1.4、创建虚假数据

有了头部数据,现在就开始写入内容了,分别是随机姓名 随机地址 随机号码 随机城市,数据的来源都是faker库,一个专门创建虚假数据用来测试的库,安装命令:pip install faker

因为头部信息已经写好,所以接下来是从第1行开始写数据,每行四个数据,准备写99个用户数据,所以用循环,循环99次,代码如下:

python">import faker
fake = faker.Faker()
for i in range(1,100):
    sheet.write(i,0,fake.first_name() + ' ' + fake.last_name())
    sheet.write(i,1,fake.address())
    sheet.write(i,2,fake.phone_number())
    sheet.write(i,3,fake.city())

1.5、保存成xls文件

python">wb.save('虚假用户数据.xls')

然后找到文件,使用office或者wps打开这个xls文件:

2、读取Excel文件

写文件已经搞定,接下来就要学习下Excel的读操作,读取Excel的库是xlrd,对应read;xlrd的安装命令:pip install xlrd

2.1、打开Excel文件

python">import xlrd
wb = xlrd.open_workbook('虚假用户数据.xls')

2.2、读取Excel数据

python"># 获取文件中全部的sheet,返回结构是list。
sheets = wb.sheets()
# 通过索引顺序获取。
sheet = sheets[0]
# 直接通过索引顺序获取。
sheet = wb.sheet_by_index(0)
# 通过名称获取。
sheet = wb.sheet_by_name('第一个sheet')

2.3、打印数据

python"># 获取行数
rows = sheet.nrows
# 获取列数
cols = sheet.ncols
for row in range(rows):
    for col in range(cols):
        print(sheet.cell(row,col).value,end=' , ')
    print('\n')

打印效果(只截取部分):

3、在现有的Excel文件中追加内容

需求:往“虚假用户数据.xls”里面,追加额外的50条用户数据,就是标题+数据,达到150条。

3.1、导入库

python">import xlrd
from xlutils.copy import copy

3.2、使用xlrd打开文件,然后xlutils赋值打开后的workbook

python">wb = xlrd.open_workbook('虚假用户数据.xls',formatting_info=True)
xwb = copy(wb)

3.3、有了workbook之后,就开始指定sheet,并获取这个sheet的总行数

python">sheet = xwb.get_sheet('第一个sheet')
rows = sheet.get_rows()

指定名称为“第一个sheet”的sheet,然后获取全部的行

3.4、有了具体的行数,然后保证原有数据不变动的情况下,从第101行写数据

python">import faker
fake = faker.Faker()
for i in range(len(rows),150):
    sheet.write(i,0,fake.first_name() + ' ' + fake.last_name())
    sheet.write(i,1,fake.address())
    sheet.write(i,2,fake.phone_number())
    sheet.write(i,3,fake.city())

range函数,从len(rows)开始,到150-1结束,共50条。 faker库是制造虚假数据的,这个在前面写数据有用过,循环写入了50条。

3.5、最后保存就可以了

python">xwb.save('虚假用户数据.xls')

使用xwb,也就是操作之后的workbook对象,直接保存原来的文件名就可以了。

4、总结

本文介绍了Python中常用的三个库:xlrd、xlwt和xlutils,分别用于读取Excel文件、写入Excel文件和处理Excel文件。这些库都有各自的优点和缺点,在实际使用时需要根据具体需求进行选择。

同时,本文还提供了一些示例代码来演示如何使用这些库。通过这些示例代码,读者可以更好地了解这些库的使用方法和操作步骤。

最后,提醒读者注意在使用这些库时要仔细阅读其文档和API,以避免出现不必要的错误。

5、参考资料

  • W3Cschool微课(Python 自动化办公课程)
  • Python官方文档–xlrd
  • Python官方文档–xlwt
  • Python官方文档–xlutils

http://www.niftyadmin.cn/n/376473.html

相关文章

【智慧交通项目实战】《 OCR车牌检测与识别》(一)

👨‍💻作者简介: CSDN、阿里云人工智能领域博客专家,新星计划计算机视觉导师,百度飞桨PPDE,专注大数据与AI知识分享。✨公众号:GoAI的学习小屋 ,免费分享书籍、简历、导图等&#xf…

​力扣解法汇总1110. 删点成林

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: GitHub - September26/java-algorithms: 算法题汇总,包含牛客,leetCode,lintCode等网站题目的解法和代码,以及完整的mode类&#…

Java 高级应用-多线程-(三)实现 Callable 接口与使用线程池创建线程

实现 Callable 接口 • 与使用 Runnable 相比, Callable 功能更强大些 – 相比 run()方法,可以有返回值 – 方法可以抛出异常 – 支持泛型的返回值(需要借助 FutureTask 类,获取返回结果) • Future 接口(…

付费订阅故事难讲,腾讯音乐如何“过河”?

作者 | 艺馨 豆乳拿铁 排版 | Cathy 监制 | Yoda 出品 | 不二研究 腾讯音乐如何“过河”? 近日,腾讯音乐娱乐集团(下称“腾讯音乐”,01698.HK)公布了2022全年及2023年一季度财报。 腾讯音乐是一家提供在线音乐及…

迪赛智慧数——柱状图(基本柱状图):购买雪糕考虑的因素

效果图 冰淇淋季节来袭,因其细腻凉爽的口感和浓郁的口味被广大消费者所钟爱,近年来已经从一款传统的解暑冷冻饮品转变为一种原料丰富、口味多元、追求健康、愉悦和高品质生活方式的休闲食品。据数据显示,82.2%女性、82.3%男性消费…

硬卷完了!低代码打怪升级进阶成神之路(2023年最新版)

一、背景 应用开发周期长一直是IT部门和业务部门面临的问题。 IT部门总是被新的应用需求弄得不堪重负。他们不可能完成业务部门想要完成的每一个项目。同时,业务部门的用户厌倦了等待,并开始完全绕过IT部门。 今天,我们来探索一下“低代码开发…

[java]关于会话Session

前言: 客户端向服务端发请求,登陆完之后,进入到首页,如何让客户端知道它有没有登陆过呢,需要从首页里面向服务器发出异步请求,请求当前登录的用户信息,登录过就能获取得到,没登陆过获取不到。 …

content-visibility:可以提高项目的渲染性能

文章目录 一、前言二、浏览器支持程度三、CSS Containment四、跳过具有 content-visibility 的渲染工作五、关于accessibility的说明六、使用contains-intrinsic-size指定元素的自然大小七、通过content-visibility: hidden隐藏内容八、对下一幅画的交互影响(INP) 一、前言 co…