使用Python實現讀取Excel表格中的資料
阿新 • • 發佈:2019-01-04
本案例的實現是通過使用第三方xlrd,關於xlrd的相關文章請自行百度,教程很多,不做詳解。
#-*- coding:utf-8 -*-
import xdrlib ,sys
import xlrd
import setting
import bz
path = 'C:\\Users\\Desktop\\111.xls'
def get_score(sheet,grade,sex,score):
book = xlrd.open_workbook(path)
sh = book.sheet_by_index(sheet-1)
for j in xrange(2 ,sh.ncols):
# 因為使用了utf-8編碼,自然要進行解碼
tmp_grade_name = sh.cell_value(1,j).decode('utf-8')
tmp_sex = sh.cell_value(2,j)
# 判斷兩個物件的值是否相等,如果判斷物件是否相等,可以使用is關鍵來進行判斷,建議使用==,cmp好像要廢棄掉了
if tmp_grade_name == grade and cmp(tmp_sex,sex) == 0:
for i in xrange(3,sh.nrows):
tmp_score = sh.cell_value(i,j)
if score <= float(tmp_score) and i>3 and i<21:
return sh.cell_value(i,1)
elif score <= float(tmp_score) and i == 3:
return sh.cell_value(3,1)
elif score >= float(tmp_score) and i >= 20:
return sh.cell_value(20 ,1)
if __name__ == '__main__':
tmp_str = raw_input()
tmp_array = tmp_str.split(' ')
if tmp_array[0]=='1':
tmp_score = get_score(int(tmp_array[0]),tmp_array[1].encode('utf-8'),
tmp_array[2].encode('utf-8'),float(tmp_array[3]))
print tmp_score
elif tmp_array[0] == '2':
tmp_score = get_score(int(tmp_array[0]),tmp_array[1].encode('utf-8'),
tmp_array[2].encode('utf-8'),float(tmp_array[3]))
print tmp_score
elif tmp_array[0] == '3':
tmp_score = get_score(int(tmp_array[0]),tmp_array[1].encode('utf-8'),
tmp_array[2].encode('utf-8'),float(tmp_array[3]))
print tmp_score
elif tmp_array[0] == '4':
tmp_score = get_score(int(tmp_array[0]),tmp_array[1].encode('utf-8'),
tmp_array[2].encode('utf-8'),float(tmp_array[3]))
print tmp_score
else:
print "Error!!!"
1、如果使用的是Windows的cmd命令列,對於中文會出現編碼問題,因為cmd支援的是GBK的編碼,解決方案:將Excel檔案重新匯出時,更改編碼為ut-8的編碼方式
2、如果是從cmd命令列輸入的編碼問題,解決方案為:在cmd命令列下,輸入chcp 65001,此時cmd的編碼方式就變為utf-8