1. 程式人生 > >使用Python實現讀取Excel表格中的資料

使用Python實現讀取Excel表格中的資料

本案例的實現是通過使用第三方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