vb.net 循环生成excel的多个sheet_Python实现Excel的读写操作

写入Excel文件

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

然后打开一个jupyter网页文件,第一个代码块,先导入xlwt这个库,并新建一个WorkBook对象。

import xlwtwb = xlwt.Workbook() # 新建一个workbook对象

Excel的每个文件,里面可以有很多sheet,所以有了workbook,还需要新建sheet

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

有了sheet,就可以开始写入数据了。sheet里面是一个二维的表格,并且索引是从0开始的,所以第一步,先写头部数据。

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

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

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

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

import fakerfake = 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())

数据全部写好了,但是此时数据保存在wb这个对象中,wb就是最开始的Workbook。

但是wb中的数据,不是永久的;保存成文件,才是永久的。Workbook对象,提供save函数,可以直接保存成xls文件,代码如下

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

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

然后找到文件,文件的位置就是这个jupyter文件的旁边。使用office或者wps打开这个xls文件,如下截图:

d85e34f2523437244962e60cd9667173.png

一共有100行,其中头部一行,虚假用户信息99行。

读取Excel文件

写入Excel的库是xlwt,对应write;读取Excel的库是xlrd,对应read;xlrd的安装命令:pip install xlrd

首先导入xlrd,然后打开前面写好的 “虚假用户数据.xls”,代码如下:

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

打开了文件之后,wb代表当前文件。读取数据,需要指定具体的sheet,有两种方式,分别是通过索引和名称,如下代码:

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

此时获取到了sheet对象,然后从这里取出数据就可以。

sheet的内容是二维表格,取数据全靠行数和列数,定位具体的格子,然后拿到格子里面的内容。

如果我们要取出全部的内容咋办?获取sheet的总行数和列数,然后循环就行。

取出总行数和列数的代码如下:

rows = sheet.nrowscols = sheet.ncols

rows就是总行数,cols是总列数。有这两值,然后两层循环,取数据就行,如下代码:

for row in range(rows):    for col in range(cols):        print(sheet.cell(row,col).value,end=' , ')    print('\n')

效果图【只截图头部】:

017d4b0f60d98f098d635520e41ef0bc.png

读数据,指定某行某列,定位到具体方格,取出里面的值即可,代码是 sheet.cell(row,col).value 。

aa0b4e6ec51b75bde8e2d593f01ea56f.png

推荐阅读:
  • 了解HashMap数据结构,超详细!
  • 学不完的办公技巧 ▏Excel篇
  • Word快速求和小技巧
  • Wps如何调整文字字符的间距
  • 干货,超有用的办公小技巧!!!
  • 如何查询打印机的ip地址
  • WPS启动反应速度慢,该如何解决?
  • 强大的在线办公工具,值得你体验~
  • wps文字里面的表格怎么自动填充序号
  • WPS如何添加自己喜欢的字体?

1e6464a7755b86ba5790482949c40d16.png

1922faa58929f26d715c2213142238a3.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值