主要内容

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函数支持扩展名文件金宝app:xls.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,…,的家

例子:ssd = 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”当您在本地机器上创建数据存储,但需要访问和处理另一台机器(可能是不同的操作系统)上的数据时。此外,当使用Parallel Computing Toolbox™和MATLAB®并行服务器™,并且数据存储在本地机器上,在不同的平台云或集群机器上可以使用数据的副本“AlternateFileSystemRoots”关联根路径。

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

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

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

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

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

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

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

的价值“AlternateFileSystemRoots”必须满足以下条件:

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

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

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

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

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

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

数据类型:字符串|细胞

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

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

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

  • 如果“TextType”“字符串”,则输出具有类型字符串

数据类型:字符|字符串

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

属性

全部展开

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

ds = spreadsheetDatastore (“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 确定数据存储是否可分区
isShuffleable 确定数据存储是否可洗牌

例子

全部折叠

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

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

fs = matlab.io.datastore.FileSet (“airlinesmall_subset.xlsx”);ssd = spreadsheetDatastore (fs)
ssds = SpreadsheetDatastore with properties: Files:{'…\Documents\MATLAB\Examples\airlinesmall_subset.xlsx'} Folders:{'…\Documents\MATLAB\Examples'} alteratefilesystemroots: {} Sheets: " Range: " Sheet Format Properties: NumHeaderLines: 0 variablenamgrule: 'modify' ReadVariableNames: true VariableNames: {'Year', 'Month', 'DayofMonth'…{'double', 'double', 'double'…控制由preview, read, readall返回的表的属性:SelectedVariableNames: {'Year', 'Month', 'DayofMonth'…} SelectedVariableTypes: {'double', 'double', 'double'…ReadSize: 'file' OutputType: 'table' RowTimes: [] Write-specific Properties: SupportedOutp金宝apputFormats: ["txt" "csv" "xlsx" "xls" "parquet" "parq"] DefaultOutputFormat: "xlsx"

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

ssd = spreadsheetDatastore (“airlinesmall_subset.xlsx”);

创建一个SpreadsheetDatastore包含该文件的对象airlinesmall_subset.xlsx

ssd = spreadsheetDatastore (“airlinesmall_subset.xlsx”
ssds = SpreadsheetDatastore with properties: Files:{'…\Documents\MATLAB\Examples\airlinesmall_subset.xlsx'} Folders:{'…\Documents\MATLAB\Examples'} alteratefilesystemroots: {} Sheets: " Range: " Sheet Format Properties: NumHeaderLines: 0 variablenamgrule: 'modify' ReadVariableNames: true VariableNames: {'Year', 'Month', 'DayofMonth'…{'double', 'double', 'double'…控制由preview, read, readall返回的表的属性:SelectedVariableNames: {'Year', 'Month', 'DayofMonth'…} SelectedVariableTypes: {'double', 'double', 'double'…ReadSize: 'file' OutputType: 'table' RowTimes: [] Write-specific Properties: SupportedOutp金宝apputFormats: ["txt" "csv" "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在第二个工作表中作为感兴趣的数据,并预览前8行。

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

只读变量的前三行DepTimeArrTime在第一页。

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);

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

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

ssd = spreadsheetDatastore (“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。4{'明确的海啸'}3{'地震和滑坡'}3{'美国'}'SE阿拉斯加,AK} 524.26 4.6 - 5 5 1958 06:15:53.600 10 - 7月22日- 1960年5月- -39.5 - -74.5 4{“明确的海啸”}1 9.5{‘地震’}{“智利”}{智利中部的}25 4.6 - 4 1260 3 22日- 1960年5月- 1960年11月19:11:17.000 20 - - -6.8 - -80.7 4{“明确的海啸”}1 6.8{‘地震’}{秘鲁的}{秘鲁的}9 3.2 - 2.5 66 2 - 1960 22:01:56.400 11月20 - 28 - mar - 1964 61.1 -147.5 - 4{'确定海啸'}1{'地震'}7.5{'日本'}{'美国'}{'威廉王子海湾,AK'} 67 6.1 221 3 28-Mar-1964 03:36:14 000 16- june -1964 38.65 139.2 4{'确定海啸'}1{'地震'}7.5{'日本'}{'西北。本州岛}5.8 2.7 - 2 1 16 - 26日1968年6月- 1964 04:01:44.300 14 - 8月- 0.2 - 119.8 4{“明确的海啸”}1 7.8{‘地震’}{“印度尼西亚”}{“班达海”}10 3.3 3 200 1968 22:14:19.400 14 - 8月23日- 1969年2月- -3.1 - 118.9 4{“明确的海啸”}1 6.9{‘地震’}{“印度尼西亚”}{“望加锡海峡”}4 2 2 600 1969 00:36:56.600 23 - 2月

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

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

ssd = spreadsheetDatastore (“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。4{'明确的海啸'}3{'地震和滑坡'}3{'美国'}'SE阿拉斯加,正义与发展党’}524.26 - 4.6 5 5 1 10——1958年7月22日——1960年5月——19:11:17.000 -39.5 - -74.5 4{“明确的海啸”}1 9.5{‘地震’}{“智利”}{智利中部的}25 4.6 - 4 1260 3 1960年- 1960年5月- 11月20 - 22日22:01:56.400 -6.8 - -80.7 4{“明确的海啸”}1 6.8{‘地震’}{秘鲁的}{秘鲁的}9 3.2 2.5 66 2 20 - 1964年11月- 1960年3月28 - - 03:36:14.000 61.1 -147.5 - 4{'明确的海啸'}1{'地震'}7.5{'日本'}{'日本'}'西北'}67 6.1 221 3 1964年3月28日-1964年6月16日04:01:44.300 38.65 139.2 4{'明确的海啸'}1{'地震'}7.5{'日本'}'西北本州岛”}5.8 - 2.7 2 26 1 16 - 1968年6月- 1964年8月14 - - 22:14:19.400 0.2 - 119.8 4{“明确的海啸”}1 7.8{‘地震’}{“印度尼西亚”}{“班达海”}200 3 14 - 3.3 - 3 1969年8月- 1968年2月23 - - 00:36:56.600 -3.1 - 118.9 4{“明确的海啸”}1 6.9{‘地震’}{“印度尼西亚”}{“望加锡海峡”}4 2 2 600 3 1969年- 2月23日
介绍了R2016a