python读取excel并存⼊⼆维列表
昨天在处理python读取excel的时候遇到了点⼩问题。分享⼀下~
起初想法是把excel⾥⾯的数据读取并存在⼆维数组返回,供后⾯处理使⽤
def readexcel(exceldir):
os.chdir(exceldir)
try:
f1 = xlrd.open_workbook('sggwhu_stationinfo.xlsx')
except:
print('There is no excel named sggwhu_stationinfo.xlsx\n Please cheek ! \n')
sheet = f1.sheet_by_index(0)                # 读sheet,这⾥取第⼀个sheet
rows  = ws                          # 获得⾏数
infor = [[] for i in range(rows)]            # 定义了⼀个⼆维列表,⾏数等于sheet的⾏数。
for i in range(1, rows):                    # 去掉表头,从第⼆⾏开始读
for j in range(1, 5):                    # 因为第⼀列是序号,数据从第⼆列开始读
infor[i-1][j-1]=ll(i,j).value# 给⼆维列表赋值
print(infor)
return infor
但是有报错:
开始以为是超界了反复试都没⽤,后来把infor输出来才意识到cell返回的是⼀个数组,⽽每次赋值给⼀
个数组当然会超界每次返回元素才⾏,但没到相关的excel函数,于是将代码修改了⼀下,每次就接收数组。
注意返回的也是数组形式,因此循环读取⼀定要定义⼆维列表。
def readexcel(exceldir):
python怎么读入excelos.chdir(exceldir)
try:
f1 = xlrd.open_workbook('sggwhu_stationinfo.xlsx')
except:
print('There is no excel name sggwhu_stationinfo.xlsx\n Please cheek ! \n')
sheet = f1.sheet_by_index(0)            # 读sheet,这⾥取第⼀个
rows  = ws                      # 获得⾏数
data  = [[] for i in range(rows)]        # 去掉表头,从第⼆⾏读数据
for i in range(1, rows):
data[i-1] = w_values(i)[1:5] # 去掉序号,取四个数据
#for var in data:
#print(var)
return data
记得要import xlrd
这样的话就OK了

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。