前言

如何使用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对象

import xlwt
wb = xlwt.Workbook()

1.2、新建sheet

sheet = wb.add_sheet('第一个sheet')

1.3、写数据

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次,代码如下:

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文件

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

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

2、读取Excel文件

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

2.1、打开Excel文件

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

2.2、读取Excel数据

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

2.3、打印数据

# 获取行数
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、导入库

import xlrd
from xlutils.copy import copy

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

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

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

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

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

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

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、最后保存就可以了

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

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

4、总结

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

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

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

5、参考资料