主要内容

spreadsheetDatastore

电子表格文件的数据存储

描述

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

创建

描述

例子

SSDS.= SpepsheetDataStore(地点从指定的数据集中创建电子表格数据存储地点

SSDS.= SpepsheetDataStore(地点名称,值指定附加参数和特性SSDS.使用一个或多个名称-值对参数。例如,SpepsheetDataStore(位置,'fileextensions',{'。xlsx','。xls'})指定在数据存储中包含哪些文件,具体取决于文件扩展。

输入参数

展开全部

数据存储中包含的文件或文件夹,指定为路径或aDsFileSet目的。

  • 路径 - 将路径指定为字符向量,字符向量,字符串标量或字符串数​​组的单元格数组,其中包含本地或远程的文件或文件夹的位置。

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

    • 远程文件或文件夹 - 指定地点成为文件或文件夹的完整路径,作为表单的统一资源定位器(URL)HDFS:/// path_to_file.有关更多信息,请参阅使用远程数据

  • DsFileSet对象 - 您也可以指定地点作为一个DsFileSet目的。有关更多信息,请参阅matlab.io.datastore.DsFileSet

什么时候地点表示文件夹时,该数据存储只包含支持的文件格式,而忽略任何其他格式。金宝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,...,namen,valuen

例子:SSD = SpepsheetDataStore('c:\ dir \ separsheetdata','fileextensions',{'。xls','。xlsm'})

电子表格文件扩展名,指定为逗号分隔对,由'fileextensions'和字符矢量,字符向量,字符串标量或字符串数​​组的字符矢量。

  • 如果没有指定'fileextensions',然后spreadsheetDatastore自动包括所有文件xls.xlsx..xlsm..xltx., 和.xltm.指定路径中的扩展。

  • 如果您想包含带有非标准文件扩展名的电子表格SpreadsheetDatastore,然后明确指定这些扩展。

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

例子:'fileextensions',''

例子:'fileextensions','。xls'

例子:FileExtensions,{‘.xlsx’,‘.xlsm}

数据类型:char|细胞|细绳

子文件夹包含标志,指定为逗号分隔的配对'insertumbfolders'真的,0或1.指定真的将所有文件和子文件夹包含在每个文件夹或仅包含每个文件夹中的文件。

如果没有指定'insertumbfolders',则默认值为

例子:'insertumubfolders',真实

数据类型:逻辑|双倍的

输出数据类型,指定为逗号分隔的对,由“OutputType”其中一个价值观是:

  • “汽车”- 检测数据存储来自数据存储的输出是否应该是表或根据您是否指定的时间表'rowtimes'名称值对。如果您指定'rowtimes'然后输出一个时间表;否则,输出是一个表。

  • '桌子'- 返回A.表格

  • '时间表'- 返回A.时间表

的价值OutputType属性返回的数据类型预览, 和readall功能。将此选项与'rowtimes'名称 - 值对以返回时间段SpreadsheetDatastore

例子:'OutputType','Timetable'

数据类型:char|细绳

备用文件系统根路径,指定为逗号分隔对组成“AlternateFileSystemRoots”字符串向量或单元格数组。使用“AlternateFileSystemRoots”在本地计算机上创建数据存储,但需要访问和处理另一台计算机上的数据(可能是不同的操作系统)。此外,当使用并行计算工具箱™和该数据处理数据时马铃薯®并行服务器™,并且数据存储在本地机器上,在不同的平台云或集群机器上可以使用数据的副本“AlternateFileSystemRoots”要关联根路径。

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

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

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

    • 指定“AlternateFileSystemRoots”作为串向量的单元阵列。

      {[“z:\ datasets”,“/ mynetwork / datasets”]; ... [y:\ datasets“,”/ mynetwork2 / datasets“,”s:\ datasets“]}

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

      {{'z:\ datasets','/ mynetwork / datasets'}; ... {'y:\ datasets','/ mynetwork2 / datasets','s:\ datasets'}}

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

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

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

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

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

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

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

数据类型:细绳|细胞

文本变量的输出数据类型,指定为逗号分隔对,由'texttype'和任何一种“字符”或者'细绳'

  • 如果输出表来自readall, 或者预览函数包含文本变量,然后'texttype'指定这些变量的数据类型。

  • 如果'texttype'“字符”,然后输出是字符向量的小区阵列。

  • 如果'texttype''细绳',则输出具有类型细绳

数据类型:char|细绳

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

特性

展开全部

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

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)

数据类型:char|细胞|细绳|双倍的

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

例子:'B1:T7'

例子:“C:”

数据类型:char|细绳

将数据存储中第一个文件的第一行作为变量名读取的指示符,指定为任意一种真的1)或0).

  • 如果真的,然后第一文件的第一个非主机行确定数据的变量名称。

  • 如果,然后第一个文件的第一个非主机行包含第一行数据。默认变量名称被分配为var1var2, 等等。

数据类型:逻辑|双倍的

标志以保留变量名称,指定为逗号分隔的配对组成variablenamingrule.和任何一种“修改”或者'保存'

  • “修改”- 转换无效的变量名称(由此确定)isvarname.功能)到有效的MATLAB标识符。

  • '保存'- 保留不具有有效MATLAB标识符的变量名称,例如包含空格和非ASCII字符的变量名称。

从R2019b开始,变量名和行名可以包含任何字符,包括空格和非ascii字符。此外,它们可以以任何字符开头,而不仅仅是字母。变量和行名不一定是有效的MATLAB标识符(由isvarname.功能)。要保留这些变量名称和行名称,请设置值variablenamingrule.'保存'

数据类型:char|细绳

数据存储区中的变量名称,指定为字符向量,字符向量,字符串标量或字符串数​​组的单元格数组。按顺序指定变量名称。如果未指定变量名称,则数据存储区将从第一个文件中的第一个非主线行检测到它们。您可以指定VariableNames然而,具有字符向量或字符串标量,但数据存储区将属性值转换为字符向量的单元格数组。修改了VariableNames属性时,新变量名的数量必须与原始变量名的数量匹配。

要支持金宝app无效的MATLAB标识符作为变量名称,例如包含空格和非ASCII字符的变量名称,请设置值variablenamingrule.参数到'保存'

如果readvariablenames.,然后VariableNames默认为{'var1','var2',...}

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

数据类型:char|细胞|细绳

变量类型,指定为“双”“字符”'细绳''分类', 或者'约会时间',它在读取数据时表示每个变量的类型。

变量类型列表对应于变量VariableNames.类型双倍的char, 和约会时间可以从数据自动检测到。您可以指定VariableTypes但是作为字符向量或字符串标量spreadsheetDatastore自动将其转换为字符向量或字符串数​​组的单元格数组。

例子:{'char','patporical'}

数据类型:char|细胞|细绳

属性预览readall桌子

从文件中读取的变量,指定为字符向量,字符向量,字符串标量或字符串数​​组的单元格数组。每个字符向量或字符串包含一个变量的名称。您可以按任何顺序指定变量名称。您可以指定SelectedVariableNames然而,有一个字符矢量或标量标量spreadsheetDatastore自动将其转换为字符向量或字符串数​​组的单元格数组。

要支持金宝app无效的MATLAB标识符作为变量名称,例如包含空格和非ASCII字符的变量名称,请设置值variablenamingrule.参数到'保存'

例子:{'var3','var7','var4'}

数据类型:char|细胞|细绳

选定的变量类型,指定为“双”“字符”'细绳''分类', 或者'约会时间',它在读取数据时表示每个所选变量的类型。变量类型列表对应于变量SelectedVariableNames.类型双倍的char, 和约会时间可以从数据自动检测到。您可以指定selectedvariabletypes.然而,作为字符向量或字符串标量,它会自动转换为字符向量或字符串数组的单元格数组。

例子:{“双”,“datetime”}

数据类型:char|细胞|细绳

呼叫中读取的数据量函数,指定为'文件'或者“表”,或作为正整数标量。

  • 如果阅读'文件',然后每次打电话一次读取所有数据一个文件。

  • 如果阅读“表”,然后每次打电话一次读取所有数据。

  • 如果阅读是一个积极的整数,然后每次打电话读取由此指定的行阅读或者如果它达到数据的末尾,则更少。

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

数据类型:char|细绳|双倍的

行次数变量的名称,指定为逗号分隔对'rowtimes'和一个变量名称(例如“日期”)或可变指数(例如3.).

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

如果是值“OutputType”'时间表',但您没有指定'rowtimes',然后SpreadsheetDatastore使用第一个约会时间或者持续时间变量作为时间表的行时间。

使用的属性writeall

此属性是只读的。

用于构造数据存储的文件夹,返回为字符向量的单元格数组。单元格数组被定向为列向量。每个字符向量都是指向包含数据文件的文件夹的路径。的地点争论在spreadsheetDatastore数据存储功能定义文件夹创建数据存储时。

文件夹修改时,属性已重置文件财产的SpreadsheetDatastore目的。

数据类型:细胞

此属性是只读的。

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

数据类型:细绳

此属性是只读的。

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

数据类型:细绳

对象的功能

hasdata 确定是否可以读取数据
numpartitions. 数据存储区分区数量
划分 分区数据存储
预览 预览数据存储中的数据子集
读取数据存储中的数据
readall 阅读数据存储中的所有数据
writeall 将数据存储写入文件
重启 将数据存储重置为初始状态
张贴名录 从数据存储区查询表名称
转变 变换数据存储
结合 合并来自多个数据存储的数据
是可分派的 确定数据存储是否已分配
isShuffleable 确定数据存储是否可洗牌

例子

全部折叠

ssd = spreadsheetDatastore ('airlinesmall_subset.xlsx'
SSDS =带有属性的SeperSheetDataStore:文件:{'... \ Documents \ Matlab \ examples \ Matlab-ex26030327 \ Airlinesmall_subset.xlsx'}文件夹:{'... \ Onedrive  -  Mathworks \ Documents \ Matlab \ examples \ Matlab-ex26030327'} lexeryfilesyroots:{}表:''范围:''表格格式属性:numheaderlines:0 variablenamingrule:0 variablenamingrule:'修改'readvariablenames:true variablenames:{'年','月','dayofmonth'...和26更多}variabletypes:{'double','double','double'...和26更多}控制通过预览,阅读,readall:selectedvariablenames:{'年','月','dayofmonth'...} SelectedVariableTypes: {'double', 'double', 'double'…ReadSize: 'file' OutputType: 'table' RowTimes: [] Write-specific Properties: SupportedOutp金宝apputFormats: ["txt" "csv" "xlsx" "xls" "parquet" "parq"] DefaultOutputFormat: "xlsx"

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

ssd = spreadsheetDatastore ('airlinesmall_subset.xlsx'
ssd与属性= SpreadsheetDatastore:文件 : { ' .../ Bdoc21a_1606923_138131 / tp24405c6c ex29672123 / airlinesmall_subset.xlsx '}文件夹:{“/ tmp / Bdoc21a_1606923_138131 / tp24405c6c / ex29672123”}AlternateFileSystemRoots:{}表:“范围:”表的格式属性:NumHeaderLines: 0 VariableNamingRule:“修改”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 = 13x1 string array "1996" "1997" "1998" "1999" "2000" "2001" "2002" "2003" "2004" "2005" "2006" "2007" "2008"

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

ssds.sheets = 2;ssds.selectedvariablenames =.'flidentnum';预览(SSD)
ans = 8x1 table FlightNum _________ 1014 1201 702 1184 1310 1759 1242 1558

只读前三行变量DepTimearttime.在第一张纸中。

ssds.readsize = 3;ssds.sheets = 1;ssds.selectedvariablenames = {“DepTime”'Arr Time'};阅读(SSD)
ans = 3x2表Deptime Arration _______ _______ 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或持续时间变量作为行次数。在这种情况下,日期变量用于行时间。此数据有两个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。北海道岛'} 6.5 2.7 2 33 1 04-Mar-1952 10-Jul-1958 06:15:53.600 58.34 -136.52 4 {'''''''''''''''''''''''''''''''''''''''''''''''''''''''-1958)06:15:53.600 58.34 -136.52 4 {'地震和Landslide'} 8.3 {'美国'} {''硒。阿拉斯加,AK'} 524.26 4.6 5 5 1 10-7月10日 -  1958年2月22日 -  5月1960年1960年1960年1960年:11:17.000 -39.5 -74.5 4 {'demanicate海啸'} 1 {'地震'} {'''中央智利'} 25 4.6 4 1260 3 22-5月1960年11月20日 -  11月20日 -  11月1960年22:01:56.400 -6.8 -80.7 4 {'Demanicate Tsunami'} 1 {'地震'} 6.8 {'Peru'} {'秘鲁'} 9 3.2 2.5 66 2 20-ov-1960 28-Mar-1964 03:36:14.000 61.1 -147.5 4 {'demanicate tsunami'} 3 {'地震和Landslide'} 9.2 {美国'} {'威廉王子王子Sound,AK'} 67 6.1 5 221 3 28-Mar-1964 16-Jun-1964 04:01:44.300 38.65 139.2 4 {'demanicate tsunami'} 1 {'地震'} 7.5 {日本'} {'nw。Honshu Island'} 5.8 2.7 2 26 1 16-Jun-1964 14-us- 1968年14〜1968年2月22:14:19.400 0.2 119.8 4 {'Demanicate Tsunami'} 1 {'地震'} 7.8 {'Adenonesia'} {'Banda Sea'} 10 3.3 3 200 3 14-1968 23-Feb-1969 00:36:56.600 -3.1 118.9 4 {'Demanicate Tsunami'} 1 {'地震'} 6.9 {Makassar Scritia'} 42 2 600 3 23-Feb-1969
介绍了R2016a