python如何读取excel文件?python读取excel表数据的方法:1、安装Excel读取数据的库---xlrd直接pip install xlrd安装xlrd库#引入Excel库的xlrdimport xlrd2、那么,python如何读取excel文件?一起来了解一下吧。
python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。下面记录python读取excel.
python读excel——xlrd
这个过程有几个比较麻烦的问题,比如读取日期、读合并单元格内容。下面先派搜芹看看基本的操作:
首先读一个excel文件,有两个sheet,测试用第二个sheet,sheet2内容如下:
python 对 excel基本的操作如下:
# -*- coding: utf-8 -*-import xlrd
import xlwtfrom datetime import date,datetimedef read_excel(): # 打开文尘毕件
workbook = xlrd.open_workbook(r'F:demo.xlsx') # 获取所有sheet
print workbook.sheet_names() # [u'sheet1', u'sheet2']
sheet2_name = workbook.sheet_names()[1] # 根据sheet索引或者名称获取sheet内容
sheet2 = workbook.sheet_by_index(1) # sheet索引从0开始
sheet2 = workbook.sheet_by_name('sheet2') # sheet的名称,行数,列数
print sheet2.name,sheet2.nrows,sheet2.ncols # 获取整行和整列的值(数组)
rows = sheet2.row_values(3) # 获取第四行内容
cols = sheet2.col_values(2) # 获取第三列内漏猜容
print rows print cols # 获取单元格内容
print sheet2.cell(1,0).value.encode('utf-8') print sheet2.cell_value(1,0).encode('utf-8') print sheet2.row(1)[0].value.encode('utf-8')
# 获取单元格内容的数据类型
print sheet2.cell(1,0).ctypeif __name__ == '__main__':
read_excel()运行结果如下:
#导入包
import xlrd
#设置路径
path='C:\\Users\\jyjh\\Desktop\\datap.xlsx'
#打开文件
data=xlrd.open_workbook(path)
#查询工作表
sheets=data.sheets()
sheets
可以通过函数、索引、名称获得工作表。
sheet_1_by_function=data.sheets()[0]
sheet_1_by_index=data.sheet_by_index(0)
sheet_1_by_name=data.sheet_by_name(u'Sheet1')
可以通过方法获得某一列或者某一行的数值。
sheet_1_by_name.row_values(1)
sheet_1_by_name.col_values(1)
通过工作表的属性获得行数和列数。
n_of_rows=sheet_1_by_name.nrows
n_of_cols=sheet_1_by_name.ncols
也可以用一个循环来遍历一次文件。扰磨弊
for i in range(n_of_rows):
print sheet_1_by_name.row_values(i)
可以通过以下的任意一种方式访问单元格的数值。
python读写excel的方式有很多,不同的模块在读写的方法上稍有区别:
用xlrd和xlwt进行excel读写;
用openpyxl进行excel读写;
用pandas进行excel读写;
为了方便演示,我这里新建了一个data.xlsx文件,第一个工作表sheet1区域“A1:F5”的内容如下,用于测试读excel的代码亏孝:
一、利用xlrd和xlwt进行excel读写(xlwt不支持xlsx)
首先是安装第三方模块xlrd和xlwt,直接输入命令"pip install xlrd"和"pip install xlwt"就行,如下(cmd→CD→c:pythonscripts):
1、xlrd读excel:
import xlrd
book = xlrd.open_workbook('data.xlsx')
sheet1 = book.sheets()[0]
nrows = sheet1.nrows
print('表格总行数',nrows)
ncols = sheet1.ncols
print('表格总列数',ncols)
row3_values = sheet1.row_values(2)
print('第3行值',row3_values)
col3_values = sheet1.col_values(2)
print('第3列值',col3_values)
cell_3_3 = sheet1.cell(2,2).value
print('第3行第3列的单元格的值:',cell_3_3)运行结果:
表格总行数 5
表格总列数 5
第3行值 ['3A', '3B', '3C', '3D', '3F']
第3列值 ['1C', '2C', '3C', '4C', '5C']
第3行第3列的单元格的值: 3C2、xlwt写excel
主要代码如下:
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('test')
worksheet.write(0,0,'A1data')
workbook.save('excelwrite.xls')程序运行后,新建excelwrite.xls工作簿并插入text工作表,A1的内容为A1data。
python读取excel表数据的方法:首慎没笑先安装Excel读取数据的库xlrd;然后获取Excel文件的位置并且读取进来;接着读取指定的行和列的内容,并将内容存储在列表中;最后运行程序即可。
python读取excel表数据的方法:
1、安装Excel读取数据的库-----xlrd
直接pip install xlrd安装xlrd库
#引入Excel库的xlrd
import xlrd2、获取Excel文件的位宽含置并且读取进来
#导入需要读取Excel表格的路径
data = xlrd.open_workbook(r'C:UsersNHTDesktopData est1.xlsx')
table = data.sheets()[0]3、读取指定的行和列的内容,并将内容存储在列表中(将第三列的时间格式转换)
#创建一个空列表,存储Excel的数据
tables = []
#将excel表格内容导入到tables列表中
def import_excel(excel):
for rown in range(excel.nrows):
array = {'road_name':'','bus_plate':'','timeline':'','road_type':'','site':''}
array['road_name'] = table.cell_value(rown,0)
array['bus_plate'] = table.cell_value(rown,1)
#将Excel表格中的时间格式转化
if table.cell(rown,2).ctype == 3:
date = xldate_as_tuple(table.cell(rown,2).value,0)
array['timeline'] = datetime.datetime(*date)
array['road_type'] = table.cell_value(rown,3)
array['site'] = table.cell_value(rown,4)
tables.append(array)4、运行程序
if __name__ == '__main__':
#将excel表格的内容导入到列表中
import_excel(table)
#验证Excel文件存储到列表中的数据
for i in tables:
print(i)5、察铅最终的运行效果如下:
6、完整的程序代码:
import xlrd
from xlrd import xldate_as_tuple
import datetime
#导入需要读取的第一个Excel表格的路径
data1 = xlrd.open_workbook(r'C:UsersNHTDesktopData est.xlsx')
table = data1.sheets()[0]
#创建一个空列表,存储Excel的数据
tables = []
#将excel表格内容导入到tables列表中
def import_excel(excel):
for rown in range(excel.nrows):
array = {'road_name':'','bus_plate':'','timeline':'','road_type':'','site':''}
array['road_name'] = table.cell_value(rown,0)
array['bus_plate'] = table.cell_value(rown,1)
if table.cell(rown,2).ctype == 3:
date = xldate_as_tuple(table.cell(rown,2).value,0)
array['timeline'] = datetime.datetime(*date)
array['road_type'] = table.cell_value(rown,3)
array['site'] = table.cell_value(rown,4)
tables.append(array)
if __name__ == '__main__':
#将excel表格的内容导入到列表中
import_excel(table)
for i in tables:
print(i)更多相关免费学习推荐:python教程
最近看到好几次群里有人问xlwt、wlrd的问题,怎么说呢,如果是office2007刚出来,大家用xlsx文件用不习惯,还可以理解,这都10年过去了喂,就算没有进化到office2016,还在用office2003的有点说不过去吧。有人可以用xlsx保存为xls啊!——故意多做几步操作,目的呢?为了兼容?兼容古老或粗胡的office2003?而且,既然都用python来操作excel了,还要手动保存一遍文件,这是神马思路?
所以,我还是觉得,应该放弃xls而转型xlsx。所以才有了这篇文章——xlwt、wlrd只能读写xls文件,而不能操作xlsx文件。
解决方案:openpyxl。这是一个非常简单的库,有几分钟就能上手了。安装非常简单,pip install openpyxl一步搞定,我就主要来对excel的操作。当然,前面废话那么多,同学们差不多也能猜到了吧,openpyxl只能操作xlsx文件而不能操作xls文件。
1、基本概念
在openpyxl中,主要用到三个概念:Workbooks,Sheets,Cells。Workbook就是一个excel工作表;Sheet是工作表中的一张表页;Cell就是简单的一个格。
以上就是python如何读取excel文件的全部内容,用于测试读excel的代码:一、利用xlrd和xlwt进行excel读写(xlwt不支持xlsx)首先是安装第三方模块xlrd和xlwt,直接输入命令"pip install xlrd"和"pip install xlwt"就行,如下(cmd→CD→c:pythonscripts):1、。