使用导入工具读取电子表格数据
此示例说明如何使用导入工具将数据从电子表格导入工作区中,以及如何从剪贴板中导入数据。
以交互方式选择数据
在主页选项卡上的变量部分中,点击导入数据 。或者,在当前文件夹浏览器中,双击扩展名为.xls
、.xlsx
、.xlsb
或 .xlsm
的文件的名称。此时将打开导入工具。
选择要导入的数据。例如,导入对应于三个列向量的数据。您可以编辑变量名称,并且可以为同一变量选择不连续的数据部分。
在导入选项卡的输出类型部分中,选择需要的数据导入方式。您选择的选项决定了所导入数据的数据类型。
选择的选项 | 导入数据的方式 |
---|---|
列向量 | 将所选数据的每一列导入为单个 m ×1 向量。 |
数值矩阵 | 将所选数据导入为 m ×n 数值数组。 |
字符串数组 | 将所选数据导入为 m ×n 字符串数组。 |
元胞数组 | 将所选数据导入为可包含多种数据类型的元胞数组,例如数值数据和文本。 |
表 | 将所选数据导入为表。 |
如果选择将数据导入为矩阵或数值列向量,工具将突出显示工作表中的所有非数值数据。每个突出显示颜色对应于一个使数据适合数值数组的建议规则。例如,您可以用 NaN
替换非数值的值。此外,将鼠标置于单个单元格上时,可以看到数据的导入方式。
您可以添加、删除、重新排序或编辑规则,例如将替换值从 NaN
更改为其他值。所有规则仅应用于导入的数据,不会更改文件中的数据。只要范围包括非数值数据并且将导入到矩阵或数值列向量,就需要指定规则。
包含 #Error?
的所有单元格都对应于电子表格文件中的公式错误,例如除以零。导入工具将这些单元格视为非数值。
当点击导入所选内容 按钮时,导入工具将会在工作区中创建变量。
有关与导入工具交互的详细信息,请观看此视频。
从多个电子表格导入数据
如果计划对多个文件执行相同的导入操作,则可以从导入工具生成代码,以便更轻松地重复操作。在所有平台上,导入工具都可以生成一个程序脚本,您可以编辑和运行该脚本以导入文件。在安装有 Excel® 软件的 Microsoft® Windows® 系统上,导入工具可以生成一个可为每个文件调用的函数。
例如,假设在当前文件夹中有一组名为 myfile01.xlsx
到 myfile25.xlsx
的电子表格,并且要从每个文件中的第一个工作表导入相同范围的数据 A2:G100
。生成代码以导入整个文件集,如下所示:
在导入工具中打开一个文件。
从导入所选内容按钮中,选择生成函数。导入工具生成类似如下脚本的代码,并在编辑器中打开代码。
function data = importfile(workbookFile, sheetName, range) %IMPORTFILE Import numeric data from a spreadsheet ...
保存函数。
在单独的程序文件或命令行中,创建一个
for
循环,以将每个电子表格中的数据导入到名为myData
的元胞数组中:numFiles = 25; range = 'A2:G100'; sheet = 1; myData = cell(1,numFiles); for fileNum = 1:numFiles fileName = sprintf('myfile%02d.xlsx',fileNum); myData{fileNum} = importfile(fileName,sheet,range); end
myData
中的每个元胞包含来自对应工作表的数据数组。例如,myData{1}
包含来自第一个文件 myfile01.xlsx
的数据。
粘贴剪贴板中的数据
除了以交互方式导入数据以外,您还可以将剪贴板中的电子表格数据粘贴到 MATLAB® 中。
首先,在 Microsoft Excel 中选择并复制您的电子表格数据,然后使用以下方法之一:
在工作区浏览器标题栏中,点击 ,然后选择粘贴。
在变量编辑器中打开一个现有变量,右键点击,然后选择粘贴 Excel 数据。
调用
uiimport -pastespecial
。
另请参阅
readmatrix
| readcell
| readvars
| readtable
| detectImportOptions