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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM