xlrd与xlwt库的异同与操作

xlrd与xlwt库是python常见操作库。我刚接触时候产生过误区,任务xlrd库与xlwt选择任意一种就可以实现文件读写,然而实际并不是。

xlrd与xlwt库的相同点

都支持对Excel文件格式为xls(对别的文件不甚了解)文件进行操作的。

xlrd与xlwt库的不同点

xlrd只支持对Excel文件格式为xls文件的读取
xlwt只支持对Excel文件格式为xls文件的写入

xlwt库的写操作

import xlwt # xlwt非python自带库,需pip命令安装
wt = xlwt.Workbook()    #创建一个Excel工作簿的对象
table = wt.add_sheet("demo") #在Excel工作簿里面创建一个名为“demo”的表格

如下图:
sheet

接下来是往表里写数据

#创建列名分别为:col1,col2,col3,col4,col5,填入第一行,位置依次为:(0,0),(0,1),(0,2),(0,3),(0,4)
table.write(0,0, "col1")
table.write(0,1, "col2")
table.write(0,2, "col3")
table.write(0,3, "col4")
table.write(0,4, "col5")

如下图:
col

# 填入 5 * 5 的表格数据
for i in range(0, 5):
    for j in range(1, 6):
        content = "{0} * {1}".format(j, i)
        table.write(j,i, content) # 第j行 * 第i列,填入数据 content
wt.save("demo.xls") #保存Excel文件,命名为:demo.xls

如下图:
data

注:xls文件格式的数据行数最大值为65536行,最大列数是256(不过个人觉得超过最大列数可能性还是比较小的)。

xlrd库的读操作

import xlrd
rd = xlrd.open_workbook("demo.xls") #读取文件 demo.xls
sheets = rd.sheet_names()   #获取所有sheet名
table = rd.sheet_by_name("demo") #通过sheet名获取名为 demo 的表

一种读取方法

# ceil方法
print("第1行 1~3 列", table.cell(0,0), table.cell(0,1), table.cell(0,2))    # (首行标题栏,即列名)
print("第2行 1~3 列", table.cell(1,0), table.cell(1,1), table.cell(1,2))
# ceil().value 方法
print("第2行 1~3 列", table.cell(1, 0), table.cell(1, 1), table.cell(1, 2))
print("第2行 1~3 列", table.cell(1,0).value, table.cell(1,1).value, table.cell(1,2).value)

上述print 输出结果为:

11~3text:'col1' text:'col2' text:'col3'21~3text:'1 * 0' text:'1 * 1' text:'1 * 2'21~3text:'1 * 0' text:'1 * 1' text:'1 * 2'21~31 * 0 1 * 1 1 * 2

可以看出 ceil().value的用法会直接取数据的值,不会像 celi()方法,会输出字段数据类型。

另一种读取方法

# row、col方法
print("第2行 第1列:", table.row(1)[0])
print("第3列 第1行:", table.col(2)[0])
# row().valuecol().value方法
print("第2行 第1列:", table.row(1)[0].value)
print("第3列 第1行:", table.col(2)[0].value)

上述print 输出结果为:

2行 第1列: text:'1 * 0'3列 第1行: text:'col3'2行 第1列: 1 * 03列 第1行: col3

可以看出 row().value、row().value的用法会直接取数据的值,不会像row(),col()方法,会输出字段数据类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值