Python和MATLAB读取excel指定行列数据的方法

Python031

Python和MATLAB读取excel指定行列数据的方法,第1张

1、用xlrd读取

对应方法如下,需要先import xlrd和numpy,通过row_start和row_end控制行数,通过column_start和column_end控制列数

这里要注意python是0-based索引,excel看的时候是1-based的索引

2、用pandas下的read_excel函数

dframe = pd.read_excel(“file_name.xlsx”)

dframe = pd.read_excel(“file_name.xlsx”, sheetname=”Sheet_name”)

dframe = pd.read_excel(“file_name.xlsx”, sheetname=number)

读取表格的方式有两种:

1、xlsread

[~,MeaDef,~]=xlsread(xls_site,table_tag,'B12:AI12')

这里输出是一个对应数字,一个对应字符串,一个是用元胞把所有数据放在一起

对应的xlswrite格式:

xlswrite(xls_site_output,train,1,['A',num2str(ix+1),':M',num2str(ix+1)])

2、read_table

1.打开表格

table = xlrd.open("path_to_your_excel", 'rb')

一般时候需要进行判断,防止表格打开错误

try:

table = xlrd.open("path_to_your_excel", 'rb')

except Exception, e

print str(e)

当表格打开错误时,可以捕获异常

2.一个表格中可以包含多个工作簿

那么需要用到哪个工作簿

python 提供了三种获取方式

sheet1 = table.sheet()[1] or

sheet1 = table.sheet_by_index() or

sheet1 =table.sheet_by_name("sheetname")

3.上一步我们已经获取到具体的sheet(工作簿)

那么根据需求,python提供了获取表格行数列数的方法

获取行数:nrows = sheet.nrows

获取列数:ncols = sheet.cols

返回值type为int

获取列数或行数可能是为了后续需要进行遍历内部的数据而用,那么下面来说python提供可以获取某一行或者某一列值的方法

4.获取某行某列的值

获取某一行的值:

nrow_value = sheet.row_values(number)

获取某一列的值:

ncol_value = sheet.col_values(number)

#上面row_values(number)中的表示想要获取哪一行的索引值,比如获取第一行的值,就是row_values(0)

返回值的type为list

整行整列的数据获取,python给出了直接的方法,那么获取整张表数据呢,就需要用到for循环进行遍历每一个单元格

不用关心行数。

只要把要保存的变量,用字典组织起来。然后用str()行数转成字符串存到文件中。

读取的时候,只要将读取的字符串,用eval()行数,再转回字典,然后按key进行区分,分别还给变量就可以了。