将数据写入 Excel 电子表格

将表格数据写入到电子表格文件

T = table(LastName,Age,Weight,Smoker);
T(1:5,:)

ans=5×4 table
LastName      Age    Weight    Smoker
____________    ___    ______    ______
{'Smith'   }    38      176      true
{'Johnson' }    43      163      false
{'Williams'}    38      131      false
{'Jones'   }    40      133      false
{'Brown'   }    49      119      false

将表 T 写入到名为 patientdata.xlsx 新电子表格文件中的第一张工作表,并从单元格 D1 处开始。要指定您想要写入到的工作表部分,请使用 Range 名称-值对组参数。默认情况下,writetable 将表变量名称写入为电子表格文件中的列标题。

filename = ‘patientdata.xlsx’;
writetable(T,filename,‘Sheet’,1,‘Range’,‘D1’)

将不带变量名称的表 T 写入名为 ‘MyNewSheet’ 的新工作表。要写入不带变量名称的数据,请将名称-值对组 WriteVariableNames 指定为 false

writetable(T,filename,‘Sheet’,‘MyNewSheet’,‘WriteVariableNames’,false);

将数值和文本数据写入到电子表格文件

要将数值数组和元胞数组导出到 Microsoft® Excel® 电子表格文件,请使用 writematrixwritecell 函数。您可以将单个数值工作区变量和文本工作区变量中的数据导出到文件中的任何工作表,以及导出到工作表中的任何位置。默认情况下,导入函数将矩阵数据写入到文件中的第一张工作表,并从单元格 A1 处开始。

例如,创建一个由数值数据组成的样本数组 A,以及一个由文本和数值数据组成的样本元胞数组 C

A = magic(5)
C = {‘Time’, ‘Temp’; 12 98; 13 ‘x’; 14 97}

A =
17    24     1     8    15
23     5     7    14    164     6    13    20    22
10    12    19    21     3
11    18    25     2     9

C =

'Time'    'Temp'
[  12]    [  98]
[  13]    'x'
[  14]    [  97]</pre></div></div></div><p>将数组 <code class="literal">A</code> 写入名为 <code class="literal">testdata.xlsx</code> 的新电子表格文件中第一张工作表上的 5×5 矩形区域 <code class="literal">E1:I5</code>。</p><div class="code_responsive"><div class="programlisting"><div class="codeinput"><pre>filename = <span style="color:#A020F0">'testdata.xlsx'</span>;

writematrix(A,filename,‘Sheet’,1,‘Range’,‘E1:I5’)

将元胞数组 C 写入到名为 Temperatures 的工作表上的一个矩形区域(从单元格 B2 处开始)。可以仅使用第一个单元格指定范围。

writecell(C,filename,‘Sheet’,‘Temperatures’,‘Range’,‘B2’);

writecell 将会显示警告,因为工作表 Temperatures 之前不存在,但您可以禁用此警告。

添加新工作表时禁用警告

如果文件中不存在目标工作表,则 writetablewritecell 函数将会显示以下警告:

Warning: Added specified worksheet.

有关如何隐藏警告消息的信息,请参阅隐蔽警告。

对 Excel 文件中的单元格设置格式

要将数据写入到 Windows® 系统上具有自定义格式(例如字体或颜色)的 Excel 文件,请直接使用 actxserver 而不是 writetablewritetimetablewritematrixwritecell 访问 COM 服务器。例如,技术解决方案 1-QLD4K 使用 actxserver 在 MATLAB® 和 Excel 之间建立连接,将数据写入工作表,以及指定单元格的颜色。

有关详细信息,请参阅Get Started with COM。

本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

将电子表格数据读入到表中

打开实时脚本

MATLAB® 中表示电子表格数据的最佳方法是在表中表示,表可以存储混合的数值和文本数据,以及变量和行名称。可采用交互方式或编程方式将数据读入到表中。要以交互方式选择数据,请在主页选项卡中的变量部分中点击导入数据。要以编程方式导入数据,请使用以下函数之一:

  • readtable - 读取一个工作表。

  • spreadsheetDatastore - 读取多个工作表或文件。

以下示例说明如何同时使用这两个函数以编程方式导入电子表格数据。样本数据 airlinesmall_subset.xlsx 包含与 1996 年到 2008 年之间的每一年一一对应的工作表。工作表名称与年份对应,例如 2003

读取工作表中的所有数据

调用 readtable,读取名为 2008 的工作表中的所有数据,然后仅显示前 10 个行和列。使用 Sheet 名称-值对组参数指定工作表名称。如果数据位于文件的第一个工作表中,则不需要指定 Sheet

T = readtable('airlinesmall_subset.xlsx','Sheet','2008');
T(1:10,1:10)

ans=10×10 tableYear    Month    DayofMonth    DayOfWeek    DepTime    CRSDepTime    ArrTime    CRSArrTime    UniqueCarrier    FlightNum____    _____    __________    _________    _______    __________    _______    __________    _____________    _________
2008      1           3            4         1012         1010        1136         1135          {'WN'}           752
2008      1           4            5         1303         1300        1411         1415          {'WN'}          1161
2008      1           6            7         2134         2115        2242         2220          {'WN'}          1830
2008      1           7            1         1734         1655          54           30          {'WN'}           302
2008      1           8            2         1750         1755        2018         2035          {'WN'}          1305
2008      1           9            3          640          645         855          905          {'WN'}           896
2008      1          10            4         1943         1945        2039         2040          {'WN'}           120
2008      1          11            5         1303         1305        1401         1400          {'WN'}          1685
2008      1          13            7         1226         1230        1415         1400          {'WN'}          1118
2008      1          14            1         1337         1340        1623         1630          {'WN'}           730

读取特定工作表中的选定范围

通过指定范围 ‘A1:E11’,从名为 1996 的工作表中仅读取前 5 列中的 10 行数据。readtable 函数将返回一个 10×5 的表。

T_selected = readtable(‘airlinesmall_subset.xlsx’,‘Sheet’,‘1996’,‘Range’,‘A1:E11’)
T_selected=10×5 table
Year    Month    DayofMonth    DayOfWeek    DepTime
____    _____    __________    _________    _______
1996      1          18            4         2117
1996      1          12            5         1252
1996      1          16            2         1441
1996      1           1            1         2258
1996      1           4            4         1814
1996      1          31            3         1822
1996      1          18            4          729
1996      1          26            5         1704
1996      1          11            4         1858
1996      1           7            7         2100

将变量转换为日期时间、持续时间或分类

在导入过程中,readtable 会自动检测变量的数据类型。但如果数据中包含非标准的日期、持续时间或重复的标签,则可以将这些变量转换为其正确的数据类型。通过将变量转换为其正确的数据类型,可以执行高效的计算和比较,并改善内存的使用。例如,将变量 YearMonthDayofMonth 表示为一个 datetime 变量,将 UniqueCarrier 表示为 categorical,将 ArrDelay 表示为以分钟为单位的 duration

data = T(:,{‘Year’,‘Month’,‘DayofMonth’,‘UniqueCarrier’,‘ArrDelay’});
data.Date = datetime(data.Year,data.Month,data.DayofMonth);
data.UniqueCarrier = categorical(data.UniqueCarrier);
data.ArrDelay = minutes(data.ArrDelay);

查找当年延迟最长的一天,然后显示该日期。

ind = find(data.ArrDelay == max(data.ArrDelay));
data.Date(ind)
ans = datetime
07-Apr-2008

读取电子表格文件中的所有工作表

数据存储适合处理分布在多个工作表或多个电子表格文件中的任意大的数据量。可通过数据存储执行数据导入和数据处理。

airlinesmall_subset.xlsx 中的工作表集合创建一个数据存储,选择要导入的变量,然后预览数据。

ds = spreadsheetDatastore(‘airlinesmall_subset.xlsx’);
ds.SelectedVariableNames = {‘Year’,‘Month’,‘DayofMonth’,‘UniqueCarrier’,‘ArrDelay’};
preview(ds)
ans=8×5 table
Year    Month    DayofMonth    UniqueCarrier    ArrDelay
____    _____    __________    _____________    ________
1996      1          18           {'HP'}            6
1996      1          12           {'HP'}           11
1996      1          16           {'HP'}          -13
1996      1           1           {'HP'}            1
1996      1           4           {'US'}           -9
1996      1          31           {'US'}            9
1996      1          18           {'US'}           -2
1996      1          26           {'NW'}          -10

在导入数据之前,可以指定要使用的数据类型。在此示例中,以分类变量的形式导入 UniqueCarrier

 ds.SelectedVariableTypes(4) = {‘categorical’};

使用 readallread 函数导入数据。readall 函数要求所有数据都能放入内存中,样本数据符合此要求。导入后,计算此数据集的最大到港延误。

alldata = readall(ds);
max(alldata.ArrDelay)/60
ans = 15.2333

对于大型数据集,请使用 read 函数导入文件的部分内容。有关详细信息,请参阅读取电子表格文件集合或序列

参考文献: https://ww2.mathworks.cn/help/matlab

matlab与excel的交互相关推荐

  1. matlab和Excel的交互 非xlsread和xlswrite(1-Excel基础)

    MATLAB对Excel的基础操作 1.打开Excel 2.新建workbook工作簿 3.新建worksheet工作表 3. 修改工作表名称 4. 选中工作表并写入数据 5.退出并保存 1.打开Ex ...

  2. matlab设置列宽,matlab和Excel的交互-(2-单元格操作)

    此处默认:Excel=actxserver('Excel.application'); Workbook 为已添加工作簿,eSheet1与eSheet2为工作表1和工作表2,都是具体的一个对象名,请根 ...

  3. 1-1、matlab与excel、txt的交互

    一.Matlab与Excel的交互 1.引述: 数学建模题目常会将数据以附件形式存放在Excel表格中.Excel自带了许多实用.便捷的数据处理功能,掌握这些技巧,往往足以进行数据的初步分析.但在需要 ...

  4. 如何用matlab在Excel中画画 附源代码

    本文介绍如何用matlab控制Excel画画. 对于matlab和Excel你的认识不能仅仅停留在xlsread和xlswrite这两个函数上,其实matlab对Excel的操作远远不止于此,详情请见 ...

  5. MATLAB和EXCEL交互 Spreadsheet Link

    Matlab和Excel交互 Spreadsheet Link Send data to MATLAB Get data from MATLAB Excel中调用matlab函数计算 本文所有都是参考 ...

  6. matlab与excel数据连接数据库,如何实现matlab与excel数据同步 数据交互?

    Excel Link是一个在Windows环境下实现Excel与Matlab进行链接的插件.通过连接Excel和Matlab,用户可以在Excel工作表空间和宏编程工具中使用Matlab的数值计算,图 ...

  7. link函数 matlab,安装Excel link插件,实现Excel与Matlab的互联

    本文介绍Excel link插件的安装,实现Excel与Matlab的互联. Excel link是在Microsoft Windows环境下实现Microsoft Excel和MATLAB进行交互的 ...

  8. Matlab读取excel并使用拉依达准则筛选数据

    1.Matlab读取Excel表格 版本:matlab R2020a,Excel2019的xlsx格式文件 1.1 导入数据 1.2 选择并打开要导入的.xlsx文件 1.3 选择数据区域,选择输出到 ...

  9. Matlab和excel联合,安装Excel link插件,实现Excel与Matlab的互联

    本文介绍Excel link插件的安装,实现Excel与Matlab的互联. Excel link是在Microsoft Windows环境下实现Microsoft Excel和MATLAB进行交互的 ...

最新文章

  1. 公开课 | 详解CNN-pFSMN模型以及在语音识别中的应用
  2. 【图论专题】拓扑排序
  3. 20145305 《信息安全系统设计基础》第6周学习总结
  4. scala使用zip合并两个集合为二元组集合
  5. 自从用python写了个自动弹幕脚本后,各大主播来找我,净赚十万!赶紧收藏!!
  6. Basic concepts behind Web Audio API
  7. Java开发中巧妙使用链表来实现模拟栈的入栈出栈操作
  8. Scale-Dependent 3D Geometric Features
  9. 对于C# 中事件的参数(object sender, EventArgs e)
  10. 设计模式---组合模式(C++实现)
  11. Oracle SQL自带函数整理
  12. 如何删除 Mac 上的 Office 许可证文件?
  13. gbase oracle mysql_项目从Oracle数据迁移到GBase数据库时解决适配遇到的问题
  14. 淘宝/天猫api 收货地址列表 API接口
  15. 华为模拟器eNSP下载与安装(win10系统)
  16. 如何使用 win10 虚拟桌面
  17. java.lang.IllegalStateException: Shutdown in progress
  18. Oracle11g 调整表空间大小 Resize
  19. 【pytorch】ECA-NET注意力机制应用于ResNet的代码实现
  20. 微信小程序网悦新闻开发--功能介绍(一)

热门文章

  1. system generator学习笔记【02】
  2. PHP 表单 - 4(验证邮件和URL)
  3. 从博客园博问站点迁移ASP.NET Core展望.NET Core
  4. 推荐最近收藏的几篇文章(r12笔记第85天)
  5. shell里面的参数
  6. 跨浏览器设置标签样式
  7. linux挂载硬盘简书,linux|挂载硬盘及分区
  8. ADC的有效位数和信纳比计算
  9. 示波器探头×1和×10的意义
  10. 爆肝800000秒想出低成本无人驾驶测距