python 读写excel数据--基础

1. 通过xlrd模块读取数据

需要安装xlrd(pip install xlrd)并import

from xlrd import open_workbook as owb

首先需要指定excel文件,如果excel文件和python脚本在同一目录,使用相对路径就可以

wb = owb('abc.xlsx')   # 数据文件

wb.sheet()函数返回一个list,是该excel文件里所有工作表(sheet)的一个列表

所以如果想指定某一工作表,可以这样写

table_base = wb.sheets()[0] # 读第一页当作base

如果想循环读取,则这样写

for s in wb.sheets():
    print ('Sheet: ', s.name)

s.name返回的是工作表的名称,可以对此进行一些过滤,来筛选出自己想要读的一部分工作表

读取数据的函数是cell(row,col).value

    for row in range(1,s.nrows): # 跳过第0行,即表头
       tmp = s.cell(row, 2).value # 这里读取了第三列(C列)的数据,A列,B列,C列...
       print(tmp)

几点说明:

  • s.nrows 返回该工作表的行数
  • s.ncols 返回该工作表的列数
  • s.cell(row, col).value返回工作表第row行,第col列的数据(如果数据是整数,则会被自动转化成float)
  • 行列下标都是从0开始,所以for循环从1开始就跳过了第0行的表头,而cell(row,2)实际是取第三列的数据

2. 通过xlwt模块写入数据

类似的,想往excel文件写入数据需要安装xlwt(pip install xlwt)并import

import xlwt

假设我们已有了一小、二小、三小的数据,需要写入,代码如下

my_file = xlwt.Workbook(encoding = 'utf-8')

titles = ['分数', '本段人数', '累计人数'] # 表头
sheet_name = ['一小', '二小', '三小']  # 每个工作表的名称
write_index = 0

for name in sheet_name:
    table = my_file.add_sheet(name)  # 增加一个工作表
    print('table name ', name)
    '写第一行,即表头'
    for i in range(0, len(titles)):
        table.write(0,i,titles[i])
    '写数据行'
    for i in range(0, len(per_point_label)):
        table.write(i+1, 0, per_point_label[i])   # 分数
        table.write(i+1, 1, per_point_data[write_index][i])  # 本段人数
        table.write(i+1, 2, per_point_cum_data[write_index][i])  # 累计人数
    write_index = write_index + 1

my_file.save('test.xls') #保存

如果保存的时候文件名是'xlsx',则用excel打开时会报错,无法打开,故存成xls格式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值