Main Content

使用导入工具读取电子表格数据

此示例说明如何使用导入工具将数据从电子表格导入工作区中,以及如何从剪贴板中导入数据。

以交互方式选择数据

主页选项卡上的变量部分中,点击导入数据 。或者,在当前文件夹浏览器中,双击扩展名为.xls.xlsx.xlsb.xlsm 的文件的名称。此时将打开导入工具。

选择要导入的数据。例如,导入对应于三个列向量的数据。您可以编辑变量名称,并且可以为同一变量选择不连续的数据部分。

A mouse cursor points to a NaN value with a tooltip that displays "Replaced by:NaN".

导入选项卡的输出类型部分中,选择需要的数据导入方式。您选择的选项决定了所导入数据的数据类型。

选择的选项导入数据的方式
列向量将所选数据的每一列导入为单个 m×1 向量。
数值矩阵将所选数据导入为 m×n 数值数组。
字符串数组将所选数据导入为 m×n 字符串数组。
元胞数组将所选数据导入为可包含多种数据类型的元胞数组,例如数值数据和文本。
将所选数据导入为表。

如果选择将数据导入为矩阵或数值列向量,工具将突出显示工作表中的所有非数值数据。每个突出显示颜色对应于一个使数据适合数值数组的建议规则。例如,您可以用 NaN 替换非数值的值。此外,将鼠标置于单个单元格上时,可以看到数据的导入方式。

Import Tool toolstrip indicating that NaN will replace unimportable cells

您可以添加、删除、重新排序或编辑规则,例如将替换值从 NaN 更改为其他值。所有规则仅应用于导入的数据,不会更改文件中的数据。只要范围包括非数值数据并且将导入到矩阵或数值列向量,就需要指定规则。

包含 #Error? 的所有单元格都对应于电子表格文件中的公式错误,例如除以零。导入工具将这些单元格视为非数值。

当点击导入所选内容 按钮时,导入工具将会在工作区中创建变量。

有关与导入工具交互的详细信息,请观看此视频

从多个电子表格导入数据

如果计划对多个文件执行相同的导入操作,则可以从导入工具生成代码,以便更轻松地重复操作。在所有平台上,导入工具都可以生成一个程序脚本,您可以编辑和运行该脚本以导入文件。在安装有 Excel® 软件的 Microsoft® Windows® 系统上,导入工具可以生成一个可为每个文件调用的函数。

例如,假设在当前文件夹中有一组名为 myfile01.xlsxmyfile25.xlsx 的电子表格,并且要从每个文件中的第一个工作表导入相同范围的数据 A2:G100。生成代码以导入整个文件集,如下所示:

  1. 在导入工具中打开一个文件。

  2. 导入所选内容按钮中,选择生成函数。导入工具生成类似如下脚本的代码,并在编辑器中打开代码。

    function data = importfile(workbookFile, sheetName, range)
    %IMPORTFILE    Import numeric data from a spreadsheet
    ...
  3. 保存函数。

  4. 在单独的程序文件或命令行中,创建一个 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 中选择并复制您的电子表格数据,然后使用以下方法之一:

  • 在工作区浏览器标题栏中,点击 the Show Workspace Actions button,然后选择粘贴

  • 在变量编辑器中打开一个现有变量,右键点击,然后选择粘贴 Excel 数据

  • 调用 uiimport -pastespecial

另请参阅

| | | |

相关主题