网站推广.NET

网站推广.NET

python如何处理excel数据

来源:互联网

这里有一张excel数据表,下面我们通过示例来看看xlrd、xlwt、xluntils、pyExcelerator和Pandas是如何处理excel文件数据的。【视频教程推荐:python教程】

python处理excel数据的方法:

方法一:使用xlrd来处理excel数据

示例1:python读取excel文件特定数据

import xlrddata = xlrd.open_workbook('test.xls') # 打开xls文件table = data.sheets()[0] # 打开第一张表nrows = table.nrows # 获取表的行数# 循环逐行输出for i in range(nrows):    if i == 0: # 跳过第一行       continue   print table.row_values(i)[:13] # 取前十三列数据

示例2:python读取excel文件所有数据

立即学习“Python免费学习笔记(深入)”;

import xlrd#打开一个xls文件workbook = xlrd.open_workbook('test.xls')#抓取所有sheet页的名称worksheets = workbook.sheet_names()print('worksheets is %s' %worksheets)#定位到sheet1worksheet1 = workbook.sheet_by_name(u'Sheet1')"""#通过索引顺序获取worksheet1 = workbook.sheets()[0]#或worksheet1 = workbook.sheet_by_index(0)""""""#遍历所有sheet对象for worksheet_name in worksheets:worksheet = workbook.sheet_by_name(worksheet_name)"""#遍历sheet1中所有行rownum_rows = worksheet1.nrowsfor curr_row in range(num_rows):row = worksheet1.row_values(curr_row)print('row%s is %s' %(curr_row,row))#遍历sheet1中所有列colnum_cols = worksheet1.ncolsfor curr_col in range(num_cols):col = worksheet1.col_values(curr_col)print('col%s is %s' %(curr_col,col))#遍历sheet1中所有单元格cellfor rown in range(num_rows):for coln in range(num_cols):cell = worksheet1.cell_value(rown,coln)print cell

方法二:使用xlutils+xlrd来处理excel数据

示例:向excel文件中写入数据

import xlrdimport xlutils.copy#打开一个xls文件rb = xlrd.open_workbook('test.xls')wb = xlutils.copy.copy(rb)#获取sheet对象,通过sheet_by_index()获取的sheet对象没有write()方法ws = wb.get_sheet(0)#写入数据ws.write(1, 1, 'changed!')#添加sheet页wb.add_sheet('sheetnnn2',cell_overwrite_ok=True)#利用保存时同名覆盖达到修改excel文件的目的,注意未被修改的内容保持不变wb.save('test.xls')

方法三:使用xlwt来处理excel数据

示例1:新建excel文件并写入数据

import xlwt#创建workbook和sheet对象workbook = xlwt.Workbook() #注意Workbook的开头W要大写sheet1 = workbook.add_sheet('sheet1',cell_overwrite_ok=True)sheet2 = workbook.add_sheet('sheet2',cell_overwrite_ok=True)#向sheet页中写入数据sheet1.write(0,0,'this should overwrite1')sheet1.write(0,1,'aaaaaaaaaaaa')sheet2.write(0,0,'this should overwrite2')sheet2.write(1,2,'bbbbbbbbbbbbb')#保存该excel文件,有同名文件时直接覆盖workbook.save('test.xls')print '创建excel文件完成!'

方法四:使用pyExcelerator来处理excel数据

示例1:读excel文件中的数据

import pyExcelerator#parse_xls返回一个列表,每项都是一个sheet页的数据。#每项是一个二元组(表名,单元格数据)。其中单元格数据为一个字典,键值就是单元格的索引(i,j)。如果某个单元格无数据,那么就不存在这个值sheets = pyExcelerator.parse_xls('test.xls')print sheets

示例2:新建excel文件并写入数据

import pyExcelerator#创建workbook和sheet对象wb = pyExcelerator.Workbook()ws = wb.add_sheet(u'第一页')#设置样式myfont = pyExcelerator.Font()myfont.name = u'Times New Roman'myfont.bold = Truemystyle = pyExcelerator.XFStyle()mystyle.font = myfont#写入数据,使用样式ws.write(0,0,u'ni hao 帕索!',mystyle)#保存该excel文件,有同名文件时直接覆盖wb.save('E:\\Code\\Python\\mini.xls')print '创建excel文件完成!'

方法五:使用Pandas库来处理excel数据

示例1:读取excel数据

#导入pandas模块import pandas as pd#直接默认读取到这个Excel的第一个表单sheet = pd.read_excel('test.xls')#默认读取前5行数据data=sheet.head()print("获取到所有的值:\n{0}".format(data))#格式化输出#也可以通过指定表单名来读取数据sheet2=pd.read_excel('test.xlsx',sheet_name='userRegister')data2=sheet2.head()#默认读取前5行数据print("获取到所有的值:\n{0}".format(data2))#格式化输出

示例2:操作Excel中的行列

#导入pandas模块import pandas as pdsheet=pd.read_excel('webservice_testcase.xlsx')#这个会直接默认读取到这个Excel的第一个表单#读取制定的某一行数据:data=sheet.ix[0].values   #0表示第一行 这里读取数据并不包含表头print("读取指定行的数据:\n{0}".format(data))#读取指定的多行:data2=sheet.ix[[0,1]].values print("读取指定行的数据:\n{0}".format(data2))#读取指定行列的数据:data3=sheet.ix[0,1]#读取第一行第二列的值print("读取指定行的数据:\n{0}".format(data3))#读取指定的多行多列的值:data4=sheet.ix[[1,2],['姓名','电话']].values    #读取第二行第三行的姓名以及电话列的值,这里需要嵌套列表print("读取指定行的数据:\n{0}".format(data4))#读取所有行指定的列的值:data5=sheet.ix[:,['姓名','电话']].values   #姓名以及电话列的值print("读取指定行的数据:\n{0}".format(data5))#获取行号输出:print("输出行号列表",sheet.index.values)#获取列名输出:print("输出列标题",sheet.columns.values)
python excel