前言

Excel是一款非常优秀的通用表格软件,在学习、工作与科研中大量的数据可能都是以Excel表格的方式存储的。利用MATLAB强大的数值计算功能处理Excel中的数据,首要解决的问题就是如何将Excel中的数据导人到MATLAB中或将MATLAB数值计算的结果
转存人Excel中。

1.调用xlsfinfo函数获取文件信息

在读取Excel目标数据文件前,可以通过xlsfinfo函数获取该文件的相关信息,为后
续操作获得有效信息(例如文件类型、文件内部结构,相关的软件版本等)。

xlsfinfo函数的调用格式如下:

[typ, desc, fmt] = xlsfinfo(filename)

其中,输人参数filename为字符串变量,用来指定目标文件的文件名和文件路径。若目标文件在MATLAB搜索路径下,filename为文件名字符串即可,例如’abc. xls’;若目标文件不在MATLAB搜索路径下,filename中还应包含文件的完整路径。
输出参数的含义如下:

typ:目标文件类型;
desc:目标文件内部表名称( sheetname);
fmt:支持目标文件的软件版本。

调用 xlsfinfo 函数读取Excel文件。

程序命令如下:

[typ, desc, fmt] = xlsfinfo( 'test')

2.调用xlsread函数读取数据

数据导人向导在导人Excel文件时调用了xlsread 函数, xlsread函数用来读取Excel工作表中的数据。当用户系统安装有Excel时,MATLAB创建Excel服务器,通过服务器接口读取数据;当用户系统没有安装Excel或MATLAB不能访问COM服务器时,MATLAB利用基本模式( basic mode)读取数据,即把Excel文件作为二进制映像文件读取进来,然后读取其中的数据。xlsread 函数的调用格式如下:

  1. num = xlsread( filename)

读取由filename指定的Excel文件中第1个工作表中的数据,返回一个双精度矩阵num。输入参数filename是由单引号括起来的字符串,用来指定目标文件的文件名和文件路径。

如果Excel工作表的顶部或底部有一个或多个非数字行,左边或右边有一个或多个非数字列,甚至对于内部的行或列,即使它有部分非数字单元格,甚至全部都是非数字单元格,xlsread也不会忽略这样的行或列。在读取的矩阵num中,非数字单元格位置用NaN代替。

  1. num = xlsread(filename, -1)

在Excel界面中打开数据文件,允许用户交互式选取要读取的工作表以及工作表中需要导人的数据区域。这种调用会弹出一个提示界面,提示用户选择Excel工作表中的数据区域。在某个工作表上单击并拖动鼠标即可选择数据区域,然后单击提示界面上的“确定”按钮即可导入所选区域的数据。

  1. num = xlsread( filename, sheet)

用参数sheet指定读取的工作表。sheet 可以是单引号括起来的字符串,也可以是正整数。当是字符串时,用来指定工作表的名字;当是正整数时,用来指定工作表的序号。

  1. num = xlsread( filename, range)

用参数range指定读取的单元格区域。range 是字符串,为了区分sheet和range参数,range参数必须是包含冒号,形如’C1 :C2’的表示区域的字符串。若range参数中没有冒号,xlsread就会把它作为工作表的名字或序号,这就可能导致错误。

  1. num = xlsread(filename, sheet, range)

同时指定工作表和工作表区域。

  1. num = xlsread( filename, sheet, range, ‘basic’)

用基本模式(basic mode)读取数据。当用户系统没有安装Excel时,用这种模式导入数据,此时导人功能受限,range参数的值会被忽略,可以设定range参数的值为空字符串(’’),而sheet参数必须是字符串,此时读取的是整个工作表中的数据。

  1. num = xlsread( filename, …,functionhandle)

在读取电子表格里的数据之前,先调用由函数句柄functionhandle指定的函数。它允许用户在读取数据之前对数据进行一些操作,例如在读取之前变换数据类型。用户可以编写自己的函数,把函数句柄传递给xlsread函数。当调用xlsread函数时,它从电子表格读取数据,把用户函数作用在这些数据上,然后返回最终结果。xlsread函数在调用用户函数时,它通过Excel服务器Range对象的接口访问电子表格的数据,所以用户函数必须包括作为输人输出的接口。

3.调用 xlswrite函数把数据写入Excel文件

xlswrite函数用来将数据矩阵M写人Excel文件,其主要调用方式如下:

xlswrite(filename, M)
xlswrite(filename, M, sheet )
xlswrite(filename, M, range)
xlswrite(filename, M, sheet, range)
status = xlswrite(filename, ... )
[status, message] = xlswrite(filename, ...)

其中输人参数filename为字符串变量,用来指定文件名和文件路径。若filename指定的文件不存在,则创建-一个新文件,文件的扩展名决定了Excel 文件的格式。若扩展名为“. xls" ,则创建一个Excel 2003下的文件;若扩展名为“. xlsx". xIsb"或“. xlsm" ,则创建一个Excel 2007格式的文件。M可以是一个m X n的数值型矩阵或字符型矩阵,也可以是一个m X n的元胞数组,此时每一个元胞只包含一个元素。由于不同版本的Excel所能支持的最大行数和列数是不一样的,所以能写人的最大矩阵的大小取决于Excel的版本。

sheet用来指定工作表,可以是代表工作表序号的正整数,也可以是代表工作表名称的字符串。需要注意的是,sheet参数中不能有冒号。若由sheet指定名称的工作表不存在,则在所有工作表的后面插入一个新的工作表。若sheet为正整数,并且大于工作表的总数,则追加多个空的工作表直到工作表的总数等于sheet。这两种情况都会产生一个警告信息,表明增加了新的工作表。

range用来指定单元格区域。对于xlswrite函数的第3种调用,range参数必须是包含冒号,形如"C1:C2’的表示单元格区域的字符串。当同时指定sheet 和range参数时(如第4种调用),range可以是形如’A2’的形式。xlswrite 函数不能识别已命名区域的名称。range指定的单元格区域的大小应与M的大小相匹配,若单元格区域超过了M的大小,则多余的单元格用#N/A填充,若单元格区域比M的大小还要小,则只写人与单元格区域相匹配的部分数据。

输出status反映了写操作完成的情况,若成功完成,则status 等于1(真),否则,status等于0(假)。只有在指定输出参数的情况下,xlswrite函数才返回status的值。输出message中包含了写操作过程中的警告和错误信息,它是一个结构体变量,有两个字段: message 和identifier. 其中message 是包含警告和错误信息的字符串,identifier也是字符串,包含了警告和错误信息的标识符。

MATLAB与Excel文件的交换相关推荐

  1. Matlab 读取excel文件提示服务器出现意外情况或无法读取问题解决

    Matlab 读取excel文件提示服务器出现意外情况或无法读取问题解决 参考文章: (1)Matlab 读取excel文件提示服务器出现意外情况或无法读取问题解决 (2)https://www.cn ...

  2. MATLAB处理EXCEL文件

    MATLAB处理EXCEL文件 文章目录 MATLAB处理EXCEL文件 前言 一.批量检索文件 二.对文档进行编辑 总结 前言 当需要批量处理EXCEL文件时,手动处理太耗时间且可能出错,由于电脑上 ...

  3. matlab excel操作,Matlab读取excel文件里数据的操作流程

    亲们入手Matlab软件过程里会读取excel文件里数据吗?下面小编就提供了Matlab读取excel文件里数据的操作流程,有需要的朋友一起来看看吧. 读取sheet1中的所有数据 以03版excel ...

  4. matlab引用数据,excel引用数据-如何用matlab处理excel文件中的数据?

    如何利用matlab根据excel表格里面的数据画图 将待导入的矩阵结数据Excel中,录入时注意行列原矩阵一一对应 录入完以后数据,为了后续步骤使用方便,命名时我们最好把它命名为我们接下来在MATL ...

  5. 针对大量数据,MATLAB生成EXCEL文件并进行排版处理的源码

    #MATLAB生成EXCEL文件并进行排版处理的源码 项目要求:给定某海洋站潮位数据在一年之年的每分钟潮位数据(一共有24×60×365=525600个数),txt格式,要求制作出海洋站该年份的潮汐表 ...

  6. 在matlab中导入excel,Matlab导入Excel文件中的数据的详细教程分享

    操作Matlab时还不会导入Excel文件中的数据?本文就介绍了Matlab导入Excel文件中的数据的操作内容,想要学习的朋友可以看一看下文哦,相信对大家会有所帮助的. 直接点击鼠标操作导入数据 打 ...

  7. matlab显示服务器出现意外,Matlab 读取excel文件提示服务器出现意外情况或无法读取问题解决...

    1.问题描述: 该错误通常发生在应用函数读取excel文件(后缀xls或xlsx)时. 应用xlsread函数读取提示服务器出现意外情况: 应用importdata读取时提示can't open fi ...

  8. matlab读lExcel文字,matlab读取excel文件及其数据处理

    在许多时候我们要借助于matlab读取excel的内容进行处理,以下是一种常用的处理方法 office的表格文件也就是xls文件本质上就是一个二维矩阵,二维矩阵是用来保存数据的最佳方式,所以在日常工作 ...

  9. matlab依次读取每个数,『matlab如何依次读取文件夹中EXCEL文件,并对每一个EXCEL特定列全部数值进行处理?』matlab调入excel文件的某一列...

    matlab导入excel表格,第一行为x,第一列为y的数据,其余为z 行的NI(r=1--0.25)比烦. filename='a.xls';%,可据你的需要更改 y=xlsread(filenam ...

  10. 使用matlab合并Excel文件

    任务描述 有两种不同类型的excel文件,每种共25个.需要将同一种类型文件汇总,并生成新的excel文件. 通过批处理语句copy *type1.xlsx all.xlsx可以实现,但有时候会乱码 ...

最新文章

  1. android文本自动添加图片格式,Android中多行文本末尾添加图片排版问题的解决方法...
  2. shell 学习之正则、别名以及管道重定向
  3. wxWidgets编译安装gtk问题的解决办法
  4. rtx3090 pytorch_RTX 3090显卡8K游戏测试演示 《暗黑3》稳定60帧运行
  5. J2EE下的常用设计模式
  6. python爬取百度百科表格_第一个python爬虫(python3爬取百度百科1000个页面)
  7. 励遍图块中的实体_如何删除CAD中的顽固图层?【AutoCAD教程】
  8. javaweb实现验证码功能
  9. 乔春洋:品牌管理创新
  10. PPDet:减少Anchor-free目标检测中的标签噪声,小目标检测提升明显
  11. 更改sql-2008sa密码
  12. 软件工程导论团队介绍——信科吴彦组
  13. VS2008中的一些命令窗口
  14. Total Commander工具栏图标 备份
  15. 删除Nouveau 安装 NVIDIA 最新驱动 ubuntu18
  16. 计算机网络安全知识汇总
  17. WordPress仿站实战教程
  18. 普林斯顿微积分读本03第二章--编程实现函数图像绘制、三角学回顾
  19. matlab 切点投资组合 程序,基于MATLAB的证券投资组合分析
  20. C# 获取鼠标屏幕坐标有误差,鼠标定位误差问题,Windows10 C#获取鼠标坐标不准 的解决方法

热门文章

  1. 喵的Unity游戏开发之路 - 攀爬
  2. 2020 CSP-S第二轮认证一等奖获奖名单
  3. 便捷的收集数据工具—Sniffer嗅探器
  4. 计算机if函数的作用,if函数的使用方法
  5. springboot集成knife4j2.0.8实现自定义md文档及权限控制
  6. Python关于pandas中 ValueError: Writing 0 cols but got ”XXX“ aliases的错误
  7. 新浪短网址生成java_短网址链接生成器代码示例——新浪短链接api接口php、java、Python调用演示...
  8. 物联网毕业设计 - 物联网毕设项目分享 有趣的毕设项目(单片机 嵌入式 物联网 stm32)
  9. 36. 有效的数独(技巧)
  10. ubuntu网页邮箱服务器设置,ubuntu配置邮件服务器