首先安裝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