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