這篇文章主要介紹Python如何讀取xlsx文件,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
Python是一種編程語言,內置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強大,在許多領域中都有廣泛的應用,例如最熱門的大數據分析,人工智能,Web開發等。
腳本如下:
from openpyxl import load_workbook workbook = load_workbook(u'/tmp/test.xlsx') #找到需要xlsx文件的位置 booksheet = workbook.active #獲取當前活躍的sheet,默認是第一個sheet #如果想獲取別的sheet頁采取下面這種方式,先獲取所有sheet頁名,在通過指定那一頁。 # sheets = workbook.get_sheet_names() # 從名稱獲取sheet # booksheet = workbook.get_sheet_by_name(sheets[0]) #獲取sheet頁的行數據 rows = booksheet.rows #獲取sheet頁的列數據 columns = booksheet.columns i = 0 # 迭代所有的行 for row in rows: i = i + 1 line = [col.value for col in row] cell_data_1 = booksheet.cell(row=i, column=3).value #獲取第i行1 列的數據 cell_data_2 = booksheet.cell(row=i, column=4).value #獲取第i行 2 列的數據 cell_data_3 = booksheet.cell(row=i, column=8).value #獲取第i行 3 列的數據 cell_data_4 = booksheet.cell(row=i, column=18).value #獲取第i行 4 列的數據 print (cell_data_1, cell_data_2, cell_data_3, cell_data_4)
實例:python讀取excel數據做分類統計
某excel中記錄了某個人的通話記錄,下面程序將按照通話地點,通話類型等統計通話時間
# -*- coding:utf-8 -*- import xlrd import datetime infos=[] info_file=xlrd.open_workbook('src.xls')#打開excel文件 info_sheet=info_file.sheets()[0]#通過索引順序獲取工作表 row_count=info_sheet.nrows#獲取行數,列數ncols for row in range(1,row_count): time_string=info_sheet.cell(row,3).value time_s_sp=time_string.split(':') infos.append(#該數組里放了row_count個字典 { 'type':info_sheet.cell(row,2).value,#獲取單元格,通話類型,主叫被叫 'other_cellphone':info_sheet.cell(row,0).value,#對方號碼, 'timespan':datetime.timedelta(seconds=int(time_s_sp[2]),minutes=int(time_s_sp[1]),hours=int(time_s_sp[0])), 'gpscity':info_sheet.cell(row,5).value#通話是本地還是外地 } ) time_all=datetime.timedelta(seconds=0)#初始化 time_types={} time_classes={} time_numbers={} for infor in infos:#取出該數組里的字典 time_all +=infor['timespan']#求總通話次數 infor_type=infor['type'] if infor_type in time_types: time_types[infor_type]+=infor['timespan'] else: time_types[infor_type]=infor['timespan']#按通話類型統計通話時間 infor_class=infor['gpscity'] if infor_class in time_classes: time_classes[infor_class]+=infor['timespan'] else: time_classes[infor_class]=infor['timespan']#這里相當于先分類賦值再++,按歸屬地統計通話時間 infor_number=infor['other_cellphone'] if infor_number in time_numbers: time_numbers[infor_number]+=infor['timespan'] else: time_numbers[infor_number]=infor['timespan']#根據號碼統計通話時間 print '總通話時間:%s' % time_all print print '總通話方式分類' for k,v in time_types.items(): print k.encode('utf-8'),v print print '通話類型分類:' for k,v in time_classes.items(): print k.encode('utf-8'),v print print '對方號碼分類:' for k,v in time_numbers.items(): print k,v
再優化下代碼
# -*- coding:utf-8 -*- import xlrd from datetime import timedelta def read_excel(file_excel):#讀excel并將需要的數據分類放在數組里 infos=[] info_file=xlrd.open_workbook(file_excel) info_sheet=info_file.sheets()[0] row_count=info_sheet.nrows for row in range(1,row_count): time_string=info_sheet.cell(row,3).value time_s_sp=time_string.split(':') infos.append( { 'type':info_sheet.cell(row,2).value, 'other_cellphone':info_sheet.cell(row,0).value, 'timespan':timedelta(seconds=int(time_s_sp[2]),minutes=int(time_s_sp[1]),hours=int(time_s_sp[0])), 'gpscity':info_sheet.cell(row,5).value } ) return infos def count_cell(list_dirs,infotype):#統計總通話及分類統計結果,存在字典里 result_dir={} time_all=timedelta(seconds=0) for list_dir in list_dirs: time_all +=list_dir['timespan'] info_type = list_dir[infotype] if info_type not in result_dir: result_dir[info_type]=list_dir['timespan'] else: result_dir[info_type]+=list_dir['timespan'] return time_all,result_dir def print_result(result_dir):#打印數據 for k,v in result_dir.items(): print k.encode('utf-8'),v if __name__=="__main__": list_dirs=read_excel('src.xls') time_all,result_type=count_cell(list_dirs,'type') result_cell=count_cell(list_dirs,'other_cellphone') result_gpscity = count_cell(list_dirs, 'gpscity') print '總通話時間:%s' % time_all print '按照通話類型分類:' print_result(result_type) print '按照號碼分類:' print_result(result_cell[1]) print '按照歸屬地分類:' print_result(result_gpscity[1])
以上是“Python如何讀取xlsx文件”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創新互聯成都網站設計公司行業資訊頻道!
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
名稱欄目:Python如何讀取xlsx文件-創新互聯
網頁網址:http://vcdvsql.cn/article30/cdejso.html
成都網站建設公司_創新互聯,為您提供標簽優化、網站收錄、品牌網站設計、域名注冊、定制網站、電子商務
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯