python从excel中读取数据传给其他函数使用

首先安装xlrd库

pip install xlrd

 


 

方法1:

表格内容如下:

 

场景描述,读取该表格A列数据,然后打印出数据

代码何解析如下:

import xlrd  #引入xlrd库

def excel():
    wb = xlrd.open_workbook('F:\\script\\1024.xls')# 打开Excel文件
    sheet = wb.sheet_by_name('becks')#通过excel表格名称(rank)获取工作表
    dat = []  #创建空list
    for a in range(sheet.nrows):  #循环读取表格内容(每次读取一行数据)
                cells = sheet.row_values(a)  # 每行数据赋值给cells
                data=int(cells[0])#因为表内可能存在多列数据,0代表第一列数据,1代表第二列,以此类推
                dat.append(data) #把每次循环读取的数据插入到list
    return dat
a = excel() #返回整个函数的值
#print(a)
def test(a):  #a变量传入
    for b in a:  #循环读取a变量list
        print(b)
test(a)

print后结果

 

方法2:

如下图列表(股票数据)

 案例预期,读取每一行的股票代码(不读取第一行),循环打印出股票代码,完整代码如下

import xlrd  #引入读取excel库
import xlwt  #引入写入excel库
import requests   #倒入requests库
from lxml import etree  #倒入lxml 库(没有这个库,pip install lxml安装)
import os
import sys

path = os.path.abspath(os.path.dirname(sys.argv[0]))

def code():
    wb = xlrd.open_workbook(path+'\\stock.xls')# 打开Excel文件
    data = wb.sheet_by_name('Sheet1')#通过excel表格名称(rank)获取工作表
    b=data.col_values(0)#获取第一列数据(数组)
    list=[]
    for c in b[1:]:#for循环,排除第一行数据
        d=int(c)
        s="%06d" % d#股票代码一共有6位,常规打印无法打印出首位带0的代码的0部分,补齐缺失的0
        #print(s)
        list.append(s)
    return(list)
code=code()
print(code)   

 

  关键信息:

读取表格数据后,获取第一列数据(获取第一行数据的方法“b=data.raw_values(0)”

data = wb.sheet_by_name('Sheet1')#通过excel表格名称(rank)获取工作表
b=data.col_values(0)#获取第一列数据(数组)

不取第一行数据

for c in b[1:]:#for循环,排除第一行数据 

读取数据格式化后,发现打印出来的数据000xxx代码不会显示000的内容

所以直接强制定义每一次循环打印的数据都必须为6位,不足6位的数据左边0补位

d=int(c)
    s="%06d" % d#股票代码一共有6位,常规打印无法打印出首位带0的代码的0部分,补齐缺失的0

 

 参考:https://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html

 

posted @ 2019-08-23 09:14  小贝书屋  阅读(3247)  评论(0编辑  收藏  举报