Python讀取xlsx檔案的實現方法

2022-10-04 17:09:11 字數 4162 閱讀 2354

指令碼如下:

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, cwww.cppcns.comell_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個字典

)time_all=datetime.timedelta(seconds=0)#初始化

time_types={}

time_classes={}

time_numbers={}

for infor in infos:#取出該陣列裡的字典

time_all +=infor['timespawww.cppcns.comn']#求總通話次數

infor_type=infor['type']

if in程式設計客棧for_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']

els程式設計客棧e:

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

blkfryme for row in range(1,row_count):

time_string=info_sheet.cell(row,3).value

time_s_sp=time_string.split(':')

infos.append(

)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檔案的實現方法

本文位址:

python讀取xlsx檔案

我是在win7下讀取的。python版本是 3.5 import xlrd import re import sqlite3 def read xlsx workbook xlrd.open workbook e 20160322.xlsx booksheet workbook.sheet by n...

python讀取xlsx檔案

encoding utf 8 from openpyxl import load workbook workbook load workbook u xlsx 相對路徑,找到需要開啟的檔案位置 booksheet workbook.active 獲取當前活躍的 sheet,預設是第乙個 sheet ...

Python 讀取 xlsx檔案

讀取weibo.xlsx檔案 import pandas as pd df pd.read excel weibo.xlsx worksheet df.values for file in worksheet print file file 每一行 print file 0 每一行的第一列結果如下 ...