主要内容

spreadsheetDatastore

电子表格文件的数据存储

描述

使用一个spreadsheetDatastore对象来管理大型电子表格文件集合,其中集合不一定适合内存。您可以创建spreadsheetDatastore对象使用spreadsheetDatastore函数,指定其属性,然后使用对象函数导入数据。

创建

描述

例子

ssd= spreadsheetDatastore (位置从指定的数据集合创建电子表格数据存储位置

ssd= spreadsheetDatastore (位置名称,值指定附加参数和属性ssd使用一个或多个名称-值参数。例如,spreadsheetDatastore(位置、“FileExtensions”(“.xlsx”、“xls”))根据文件扩展名指定在数据存储中包含哪些文件。

输入参数

全部展开

包含在数据存储中的文件或文件夹,指定为文件集对象作为文件路径,或作为DsFileSet对象。

  • 文件集object -可以指定位置作为一个文件集对象。指定位置为文件集对象相比于指定路径或DsFileSet对象。有关更多信息,请参见matlab.io.datastore.FileSet

  • 文件路径—您可以将单个文件路径指定为字符向量或字符串标量。您可以将多个文件路径指定为字符向量的单元格数组或字符串数组。

  • DsFileSetobject -可以指定DsFileSet对象。有关更多信息,请参见matlab.io.datastore.DsFileSet

文件或文件夹可以是本地的或远程的:

  • 本地文件或文件夹—指定文件或文件夹的本地路径。如果文件不在当前文件夹中,则指定完整路径或相对路径。指定文件夹的子文件夹中的文件不会自动包含在数据存储中。当指定本地路径时,可以使用通配符*。此字符指定数据存储包括所有匹配文件或匹配文件夹中的所有文件。

  • 远程文件或文件夹——指定远程文件或文件夹的完整路径作为格式的统一资源定位符(URL)hdfs: / / /path_to_file.有关更多信息,请参见使用远程数据

指定文件夹时,数据存储只包括支持的文件格式的文件,而忽略任何其他格式的文件。金宝app若要指定要包含在数据存储中的自定义文件扩展名列表,请参见FileExtensions财产。

spreadsheetDatastore函数支持扩展名为:金宝appxls.xlsx.xlsm.xltx,.xltm

例子:“file1.xlsx”

例子:“. . / dir /数据/ file1.xlsx”

例子:[" C: \ dir \ data \ file1.xlsx”,“C: \ dir \ data \ file2.xlsx”)

例子:“s3: / / bucketname / path_to_files / * xls”

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来名字在报价。

例子:ssds = spreadsheetDatastore("C:\dir\spreadsheetdata","FileExtensions",[".xls",".xlsm"])

电子表格文件扩展名,指定为由“FileExtensions”字符向量,字符向量的单元格数组,字符串标量,或者字符串数组。

  • 如果您没有指定“FileExtensions”,然后spreadsheetDatastore自动包含所有文件xls.xlsx.xlsm.xltx,.xltm指定路径下的扩展。

  • 中包含具有非标准文件扩展名的电子表格SpreadsheetDatastore,然后显式地指定这些扩展。

  • 如果你想创建一个SpreadsheetDatastore对于没有任何扩展名的文件,请指定“FileExtensions”作为一个空的字符向量,

例子:“FileExtensions”、“

例子:“FileExtensions”、“xls”

例子:“FileExtensions”(“.xlsx”、“.xlsm”)

数据类型:字符|细胞|字符串

子文件夹包含标志,指定为名称-值参数,由“IncludeSubfolders”而且真正的、0或1。指定真正的在每个文件夹或中包含所有文件和子文件夹只包括每个文件夹中的文件。

如果您没有指定“IncludeSubfolders”,则默认值为

例子:“IncludeSubfolders”,真的

数据类型:逻辑|

输出数据类型,指定为由“OutputType”其中一个价值观是:

  • “汽车”属性,检测数据存储的输出是表还是时间表“RowTimes”名称-值参数。如果你指定“RowTimes”然后输出是一个时间表;否则,输出是一个表。

  • “表”—返回表格

  • “时间表”—返回时间表

的价值OutputType类返回的数据类型预览,readall功能。方法结合使用此选项“RowTimes”返回时间表的名称-值对spreadsheetDatastore

例子:“OutputType”、“时间表”

数据类型:字符|字符串

可选文件系统根路径,指定为由“AlternateFileSystemRoots”一个字符串向量或者单元格数组。使用“AlternateFileSystemRoots”在本地机器上创建数据存储,但需要在另一台机器(可能是不同的操作系统)上访问和处理数据。此外,在使用并行计算工具箱™和MATLAB®并行服务器™,并且数据存储在您的本地机器上,不同平台云或集群机器上可用的数据副本,您必须使用“AlternateFileSystemRoots”关联根路径。

  • 若要关联一组等价的根路径,请指定“AlternateFileSystemRoots”作为一个字符串向量。例如,

    [" Z: \数据集”、“/ mynetwork /数据集”)

  • 若要关联多个与数据存储等效的根路径集,请指定“AlternateFileSystemRoots”作为包含多行的单元格数组,其中每行表示一组等效根路径。将单元格数组中的每一行指定为字符串向量或字符向量的单元格数组。例如:

    • 指定“AlternateFileSystemRoots”作为字符串向量的单元格数组。

      {[Z: \“数据集”、“/ mynetwork /数据集”);…[" Y: \数据集”、“/ mynetwork2 /数据集”、“年代:\数据集”)}

    • 另外,指定“AlternateFileSystemRoots”作为字符向量的单元格数组的单元格数组。

      {{“Z: \数据集”、“mynetwork /数据集”},…{“Y: \数据集”,“mynetwork2 /数据集”,年代:\数据集的}}

的价值“AlternateFileSystemRoots”必须满足这些条件:

  • 包含一行或多行,其中每行指定一组等效的根路径。

  • 每行指定多个根路径,每个根路径至少包含两个字符。

  • 根路径是唯一的,并且不是彼此的子文件夹。

  • 包含至少一个指向文件位置的根路径条目。

有关更多信息,请参见为不同机器或集群上的处理设置数据存储

例子:[" Z: \数据集”、“/ mynetwork /数据集”)

数据类型:字符串|细胞

输出数据类型的文本变量,指定为名称-值参数组成“TextType”,要么“字符”“字符串”

  • 如果输出表来自readall,或预览函数包含文本变量“TextType”指定这些变量的数据类型。

  • 如果“TextType”“字符”,则输出为字符向量的单元格数组。

  • 如果“TextType”“字符串”,则输出有type字符串

数据类型:字符|字符串

除了这些名称-值对之外,还可以将该页上的任何属性指定为名称-值对(除了文件属性)。

属性

全部展开

SpreadsheetDatastore属性描述数据存储对象中文件的格式,并控制如何从数据存储中读取数据。除了文件属性的值时,可以指定SpreadsheetDatastore属性,在创建数据存储对象时使用名称-值对参数。要在创建对象后查看或修改属性,请使用点表示法:

ds =电子表格数据存储“airlinesmall_subset.xlsx”);ds。床单= [1 2];ds。范围=“A1: C6”

文件属性

包含在数据存储中的文件,解析为字符向量的单元格数组或字符串数组,其中每个字符向量或字符串都是文件的完整路径。的位置参数中的参数spreadsheetDatastore而且数据存储函数定义这些文件。

单元格数组中指定的第一个文件确定数据存储中所有文件的变量名和格式信息。

例子:[" C: \ dir \ data \ file1.xls”;“C: \ dir \ data \ file2.xls”)

数据类型:细胞|字符串

读取每一页开头时要跳过的行数,指定为正整数。当您还指定范围财产,NumHeaderLines在指定数据块的开始处要跳过的行数。

数据类型:

文件中的工作表,指定为字符向量、字符向量的单元格数组、字符串标量或包含工作表名称的字符串数组,或指定为工作表索引的数字向量。空字符向量指示包含文件中的所有表。

例子:[" sheet1”、“sheet7”)

例子:[3 5 7]

数据类型:字符|细胞|字符串|

行和列边界,指定为字符向量或字符串标量,用于定义工作表中的矩形数据块。空字符向量指示边界是文件的开始和数据的结束。

例子:“B1: T7”

例子:“C:”

数据类型:字符|字符串

将数据存储中第一个文件的第一行读取为变量名的指示器真正的1)或0).

  • 如果真正的,然后第一个文件的第一个非标题行确定数据的变量名。

  • 如果,则第一个文件的第一个非标头行包含第一行数据。默认变量名被赋值为Var1Var2等等。

数据类型:逻辑|

标记以保留变量名,指定为任意一种“修改”“保存”

  • “修改”-转换无效的变量名(由isvarname函数)到有效的MATLAB标识符。

  • “保存”-保留不是有效MATLAB标识符的变量名,例如包含空格和非ascii字符的变量名。

从R2019b开始,变量名和行名可以包含任何字符,包括空格和非ascii字符。此外,他们可以从任何字符开始,而不仅仅是字母。变量名和行名不必是有效的MATLAB标识符(由isvarname功能)。若要保留这些变量名和行名,请设置值VariableNamingRule“保存”.的值时,变量名不会刷新VariableNamingRule“修改”“保存”

数据类型:字符|字符串

数据存储中的变量名称,指定为字符向量、字符向量的单元格数组、字符串标量或字符串数组。按照它们在文件中出现的顺序指定变量名。如果没有指定变量名,则数据存储将从第一个文件中的第一个非标题行检测它们。你可以指定VariableNames但是,对于字符向量或字符串标量,数据存储将属性值转换并存储为字符向量的单元格数组。当修改VariableNames属性时,新变量名的数量必须与原始变量名的数量匹配。

属性的金宝app值可支持无效的MATLAB标识符作为变量名,例如包含空格和非ascii字符的变量名VariableNamingRule参数“保存”

如果ReadVariableNames,然后VariableNames默认为[" Var1”、“Var2”…]

例子:“时间”,“日期”,“数量”)

数据类型:字符|细胞|字符串

变量类型,指定为“替身”“字符”“字符串”“分类”,或“datetime”,它在读取数据时指示每个变量的类型。

变量类型列表对应于VariableNames.类型字符,datetime可以从数据中自动检测。你可以指定VariableTypes但是,作为字符向量或字符串标量spreadsheetDatastore自动将其转换为字符向量的单元格数组或字符串数组。

例子:(“字符”、“分类”)

数据类型:字符|细胞|字符串

属性预览readall表格

要从文件中读取的变量,指定为字符向量、字符向量的单元格数组、字符串标量或字符串数组。每个字符向量或字符串包含一个变量的名称。可以以任意顺序指定变量名。你可以指定SelectedVariableNames但是,使用字符向量或字符串标量spreadsheetDatastore自动将其转换为字符向量的单元格数组或字符串数组。

若要支金宝app持无效的MATLAB标识符作为变量名,例如包含空格和非ascii字符的变量名,请设置值为VariableNamingRule参数“保存”

例子:[" Var3”、“Var7”、“Var4”)

数据类型:字符|细胞|字符串

选定的变量类型,指定为“替身”“字符”“字符串”“分类”,或“datetime”,表示读取数据时每个选定变量的类型。变量类型列表对应于SelectedVariableNames.类型字符,datetime可以从数据中自动检测。你可以指定SelectedVariableTypes但是,作为字符向量或字符串标量,它会自动转换为字符向量或字符串数组的单元格数组。

例子:(“双”、“datetime”)

数据类型:字符|细胞|字符串

类调用中要读取的数据量函数,指定为“文件”“表”,或作为正整数标量。

  • 如果ReadSize“文件”,然后每个呼叫到每次读取一个文件中的所有数据。

  • 如果ReadSize“表”,然后每个呼叫到每次读取一张表中的所有数据。

  • 如果ReadSize是正整数,那么每个调用到读取指定的行ReadSize,如果它到达数据的末尾,则会减少。

当你改变ReadSize从整数标量到“文件”“表”,或者相反,数据存储将使用重置函数。

数据类型:字符|字符串|

行次数变量的名称,指定为由“RowTimes”和变量名(例如“日期”)或变量索引(例如3.).

RowTimes与时间表相关的参数。时间表的每一行都与一个时间相关联,该时间在时间表的时间向量中捕获。中指定的变量。RowTimes必须包含datetime或者一个持续时间向量。

如果的值“OutputType”“时间表”,但你没有具体说明“RowTimes”,然后spreadsheetDatastore使用第一个datetime持续时间变量为时间表的行时间。

供用户使用的属性writeall

此属性是只读的。

用于构造数据存储的文件夹,作为字符向量的单元格数组返回。单元格数组以列向量为方向。每个字符向量都是指向包含数据文件的文件夹的路径。的位置参数中的参数spreadsheetDatastore而且数据存储函数定义文件夹创建数据存储时。

文件夹属性时,将重置文件的属性SpreadsheetDatastore对象。

数据类型:细胞

此属性是只读的。

支持写入的格式,金宝app作为字符串的行向量返回。此属性指定使用时可能的输出格式writeall从数据存储写入输出文件。

此属性是只读的。

默认输出格式,作为字符串标量返回。此属性指定使用时的默认格式writeall从数据存储写入输出文件。

数据类型:字符串

对象的功能

hasdata 确定是否有数据可以读取
numpartitions 数据存储分区数
分区 对数据存储进行分区
预览 预览数据存储中的数据子集
读取数据存储中的数据
readall 读取数据存储中的所有数据
writeall 将数据存储写入文件
重置 将数据存储重置为初始状态
sheetnames 从数据存储中查询表名
变换 变换数据存储
结合 组合来自多个数据存储的数据
isPartitionable 确定数据存储是否可分区
isSubsettable 确定数据存储是否可子集
isShuffleable 确定数据存储是否可洗牌

例子

全部折叠

使用FileSet对象或文件路径创建spreadsheetDatastore对象。

创建一个FileSet对象。创建一个spreadsheetDatastore对象。

fs = matlab.io.datastore.FileSet(“airlinesmall_subset.xlsx”);ssds =数据存储(fs)
ssds = SpreadsheetDatastore属性:Files:{'…\Documents\MATLAB\Examples\airlinesmall_subset.xlsx'} Folders:{'…\Documents\MATLAB\Examples'} AlternateFileSystemRoots: {} Sheets: " Range: " Sheet格式属性:NumHeaderLines: 0 VariableNamingRule: 'modify' ReadVariableNames: true VariableNames: {'Year', 'Month', 'DayofMonth'…和26个}变量类型:{'double', 'double', 'double'…SelectedVariableNames: {'Year', 'Month', 'DayofMonth'…SelectedVariableTypes: {'double', 'double', 'double'…和26更多}ReadSize: 'file' OutputType: 'table' RowTimes:[]写属性:supportedoutputformat: ["txt" "c金宝appsv" "xlsx" "xls" "parquet" "parq"] DefaultOutputFormat: "xlsx"

或者,您可以使用文件路径指定数据。

ssds =电子表格数据存储“airlinesmall_subset.xlsx”);

创建一个SpreadsheetDatastore对象,其中包含文件airlinesmall_subset.xlsx

ssds =电子表格数据存储“airlinesmall_subset.xlsx”
ssds = SpreadsheetDatastore属性:Files:{'…\Documents\MATLAB\Examples\airlinesmall_subset.xlsx'} Folders:{'…\Documents\MATLAB\Examples'} AlternateFileSystemRoots: {} Sheets: " Range: " Sheet格式属性:NumHeaderLines: 0 VariableNamingRule: 'modify' ReadVariableNames: true VariableNames: {'Year', 'Month', 'DayofMonth'…和26个}变量类型:{'double', 'double', 'double'…SelectedVariableNames: {'Year', 'Month', 'DayofMonth'…SelectedVariableTypes: {'double', 'double', 'double'…和26更多}ReadSize: 'file' OutputType: 'table' RowTimes:[]写属性:supportedoutputformat: ["txt" "c金宝appsv" "xlsx" "xls" "parquet" "parq"] DefaultOutputFormat: "xlsx"

显示文件的表名。该文件每年包含一页。

sheetnames (ssd, 1)
ans =13 x1字符串"1996" "1997" "1998" "1999" "2000" "2001" "2002" "2003" "2004" "2005" "2006" "2007" "2008"

指定变量FlightNum在第二个表中作为感兴趣的数据,并预览前八行。

ssd。床单= 2;ssd。SelectedVariableNames =“FlightNum”;预览(ssd)
ans =8×1表航班号码_________ 1014 1201 702 1184 1310 1759 1242 1558

只读取变量的前三行DepTime而且ArrTime在第一页。

ssd。ReadSize = 3;ssd。床单= 1;ssd。SelectedVariableNames = [“DepTime”“ArrTime”];阅读(ssd)
ans =3×2表DepTime ArrTime _______ _______ 2117 2305 1252 1511 1441 1708

读所有第四,五,六页。

ssd。床单= 4:6;readall (ssd);

使用OutputType而且RowTimes要创建的名称-值对SpreadsheetDatastore返回时间表而不是表格。

为创建数据存储tsunamis_dated.xlsx.指定“OutputType”作为“时间表”如此......以至于......SpreadsheetDatastore返回时间表而不是表格。

ssds =电子表格数据存储“tsunamis_dated.xlsx”“OutputType”“时间表”);预览(ssd)
ans =8×15时间表日期经度纬度ValidityCode有效性CauseCode引起EarthquakeMagnitude国家位置MaxHeight IidaMagnitude强度NumDeaths DescDeaths时间  ___________ ________ _________ ____________ ____________________ _________ ____________________________ ___________________ _____________ ____________________________ _________ _____________ _________ _________ __________ ________________________ 04 - mar - 1952 42.15 - 143.85 4{“明确的海啸”}1 8.1{‘地震’}{‘日本’}{SE。北海道岛6.5 2.7 2 33 1 1952年3月04日01:22:41.000 1958年7月10日58.34 -136.52 4{'明确的海啸'}3{'地震和滑坡'}8.3{'美国'}{'东南岛'。阿拉斯加,阿拉斯加,阿拉斯加,阿拉斯加,1958年7月10日06:15:53.600 1960年5月22日-39.5 -74.5 4{'明确海啸'}1{'地震'}9.5{'智利'}{'智利中部'}25 4.6 4 1260 3 1960年5月22日19:11:17 000 1960年11月20日-6.8 -80.7 4{'明确海啸'}1{'地震'}6.8{'秘鲁'}{'秘鲁'}9 3.2 2.5 66 2 1960年11月20日22:01:56.400 1964年3月28日61.1 -147.5 4{'明确海啸'}3{'地震和滑坡'}9.2{'美国'}{'威廉王子之声,AK'} 67 6.1 5 221 3 1964年3月28日03:36:14 000 1964年6月16日38.65 139.2 4{'明确海啸'}1{'地震'}7.5{'日本'}{'西北。本州岛'}5.8 2.7 2 26 1 1964年6月16日04:01:44.300 1968年8月14日0.2 119.8 4{'明确海啸'}1{'地震'}7.8{'印度尼西亚'}{'班达海'}10 3.3 3 200 3 1968年8月14日22:14:19.400 1969年2月23日-3.1 118.9 4{'明确海啸'}1{'地震'}6.9{'印度尼西亚'}{'加锡海峡'}4 22 600 3 1969年2月23日00:36:56.600

当你不指定时“RowTimes”spreadsheetDatastore使用第一个日期时间或持续时间变量作为行时间。在这种情况下,日期变量用于行次数。这个数据有两个datetime变量:日期而且时间.的日期变量不包括有关小时、分钟或秒的信息,而时间变量具有每个事件的特定时间。

指定“RowTimes”选项,以使用事件时间时间变量)作为行次数。

ssds =电子表格数据存储“tsunamis_dated.xlsx”“OutputType”“时间表”“RowTimes”“时间”);预览(ssd)
ans =8×15时间表的时间经度纬度ValidityCode有效性CauseCode引起EarthquakeMagnitude国家位置MaxHeight IidaMagnitude强度NumDeaths DescDeaths日期  ________________________ ________ _________ ____________ ____________________ _________ ____________________________ ___________________ _____________ ____________________________ _________ _____________ _________ _________ __________ ___________ 04 - mar - 1952 01:22:41.000 42.15 - 143.85 4{“明确的海啸”}1 8.1{‘地震’}{‘日本’}{SE。北海道岛6.5 2.7 2 33 1 1952年3月04日至1958年7月10日06:15:53.600 58.34 -136.52 4{'明确的海啸'}3{'地震和滑坡'}8.3{'美国'}{'东南岛'。阿拉斯加,阿拉斯加,1958年7月10日- 5月22日-1960年5月22日19:11:17 000 -39.5 -74.5 4{'明确海啸'}1{'地震'}9.5{'智利'}{'智利中部'}25 4.6 4 1260 3 1960年5月22日-1960年11月20日- 11月20日-1960年22:01:56.400 -6.8 -80.7 4{'明确海啸'}1{'地震'}6.8{'秘鲁'}{'秘鲁'}9 3.2 2.5 66 2 1960年11月20日-1964年3月28日03:36:14 000 61.1 -147.5 4{'明确海啸'}3{'地震和滑坡'}9.2{'美国'}{'威廉王子之声,AK'} 67 6.1 5 221 3 1964年3月28日-1964年6月16日-1964年04:01:44.300 38.65 139.2 4{'明确的海啸'}1{'地震'}7.5{'日本'}{'西北。本州岛5.8 2.7 2 26 1 1964年6月16日-1968年8月14日22:14:19.400 0.2 119.8 4{'明确海啸'}1{'地震'}7.8{'印度尼西亚'}{'班达海'}10 3.3 3 200 3 1968年8月14日-1969年2月23日00:36:56.600 -3.1 118.9 4{'明确海啸'}1{'地震'}6.9{'印度尼西亚'}{'加锡海峡'}4 22 600 3 1969年2月23日

版本历史

在R2016a中引入