spreadsheetDatastore
电子表格文件的数据存储
描述
使用一个spreadsheetDatastore
对象来管理大型电子表格文件集合,其中集合不一定适合内存。您可以创建spreadsheetDatastore
对象使用spreadsheetDatastore
函数,指定其属性,然后使用对象函数导入数据。
创建
描述
输入参数
位置
- - - - - -要包含在数据存储中的文件或文件夹
文件集
对象|文件路径|DsFileSet
对象
包含在数据存储中的文件或文件夹,指定为文件集
对象作为文件路径,或作为DsFileSet
对象。
文件集
object -可以指定位置
作为一个文件集
对象。指定位置为文件集
对象相比于指定路径或DsFileSet
对象。有关更多信息,请参见matlab.io.datastore.FileSet
.文件路径—您可以将单个文件路径指定为字符向量或字符串标量。您可以将多个文件路径指定为字符向量的单元格数组或字符串数组。
DsFileSet
object -可以指定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”
字符向量,字符向量的单元格数组,字符串标量,或者字符串数组。
如果您没有指定
“FileExtensions”
,然后spreadsheetDatastore
自动包含所有文件xls
,.xlsx
,.xlsm
,.xltx
,.xltm
指定路径下的扩展。中包含具有非标准文件扩展名的电子表格
SpreadsheetDatastore
,然后显式地指定这些扩展。如果你想创建一个
SpreadsheetDatastore
对于没有任何扩展名的文件,请指定“FileExtensions”
作为一个空的字符向量,”
.
例子:“FileExtensions”、“
例子:“FileExtensions”、“xls”
例子:“FileExtensions”(“.xlsx”、“.xlsm”)
数据类型:字符
|细胞
|字符串
IncludeSubfolders
- - - - - -子文件夹包含标志
真正的
或假
|0或1
子文件夹包含标志,指定为名称-值参数,由“IncludeSubfolders”
而且真正的
,假
、0或1。指定真正的
在每个文件夹或中包含所有文件和子文件夹假
只包括每个文件夹中的文件。
如果您没有指定“IncludeSubfolders”
,则默认值为假
.
例子:“IncludeSubfolders”,真的
数据类型:逻辑
|双
OutputType
- - - - - -输出数据类型
“汽车”
(默认)|“表”
|“时间表”
AlternateFileSystemRoots
- - - - - -可选文件系统根路径
字符串向量|单元阵列
可选文件系统根路径,指定为由“AlternateFileSystemRoots”
一个字符串向量或者单元格数组。使用“AlternateFileSystemRoots”
在本地机器上创建数据存储,但需要在另一台机器(可能是不同的操作系统)上访问和处理数据。此外,在使用并行计算工具箱™和MATLAB®并行服务器™,并且数据存储在您的本地机器上,不同平台云或集群机器上可用的数据副本,您必须使用“AlternateFileSystemRoots”
关联根路径。
若要关联一组等价的根路径,请指定
“AlternateFileSystemRoots”
作为一个字符串向量。例如,[" Z: \数据集”、“/ mynetwork /数据集”)
若要关联多个与数据存储等效的根路径集,请指定
“AlternateFileSystemRoots”
作为包含多行的单元格数组,其中每行表示一组等效根路径。将单元格数组中的每一行指定为字符串向量或字符向量的单元格数组。例如:指定
“AlternateFileSystemRoots”
作为字符串向量的单元格数组。{[Z: \“数据集”、“/ mynetwork /数据集”);…[" Y: \数据集”、“/ mynetwork2 /数据集”、“年代:\数据集”)}
另外,指定
“AlternateFileSystemRoots”
作为字符向量的单元格数组的单元格数组。{{“Z: \数据集”、“mynetwork /数据集”},…{“Y: \数据集”,“mynetwork2 /数据集”,年代:\数据集的}}
的价值“AlternateFileSystemRoots”
必须满足这些条件:
包含一行或多行,其中每行指定一组等效的根路径。
每行指定多个根路径,每个根路径至少包含两个字符。
根路径是唯一的,并且不是彼此的子文件夹。
包含至少一个指向文件位置的根路径条目。
有关更多信息,请参见为不同机器或集群上的处理设置数据存储.
例子:[" Z: \数据集”、“/ mynetwork /数据集”)
数据类型:字符串
|细胞
TextType
- - - - - -文本变量的输出数据类型
“字符”
(默认)|“字符串”
输出数据类型的文本变量,指定为名称-值参数组成“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
- - - - - -要跳过的行数
0
(默认)|正整数
读取每一页开头时要跳过的行数,指定为正整数。当您还指定范围
财产,NumHeaderLines
在指定数据块的开始处要跳过的行数。
数据类型:双
表
- - - - - -文件中的表
""
(默认)|表的名字|表索引
文件中的工作表,指定为字符向量、字符向量的单元格数组、字符串标量或包含工作表名称的字符串数组,或指定为工作表索引的数字向量。空字符向量”
指示包含文件中的所有表。
例子:[" sheet1”、“sheet7”)
例子:[3 5 7]
数据类型:字符
|细胞
|字符串
|双
范围
- - - - - -行和列边界
""
(默认)|特征向量|字符串标量
行和列边界,指定为字符向量或字符串标量,用于定义工作表中的矩形数据块。空字符向量”
指示边界是文件的开始和数据的结束。
例子:“B1: T7”
例子:“C:”
数据类型:字符
|字符串
ReadVariableNames
- - - - - -读取变量名的指示器
真正的
(默认)|假
|1
|0
将数据存储中第一个文件的第一行读取为变量名的指示器真正的
(1
)或假
(0
).
如果
真正的
,然后第一个文件的第一个非标题行确定数据的变量名。如果
假
,则第一个文件的第一个非标头行包含第一行数据。默认变量名被赋值为Var1
,Var2
等等。
数据类型:逻辑
|双
VariableNamingRule
- - - - - -标记以保留变量名
“修改”
(默认)|“保存”
标记以保留变量名,指定为任意一种“修改”
或“保存”
.
“修改”
-转换无效的变量名(由isvarname
函数)到有效的MATLAB标识符。“保存”
-保留不是有效MATLAB标识符的变量名,例如包含空格和非ascii字符的变量名。
从R2019b开始,变量名和行名可以包含任何字符,包括空格和非ascii字符。此外,他们可以从任何字符开始,而不仅仅是字母。变量名和行名不必是有效的MATLAB标识符(由isvarname
功能)。若要保留这些变量名和行名,请设置值VariableNamingRule
来“保存”
.的值时,变量名不会刷新VariableNamingRule
从“修改”
来“保存”
.
数据类型:字符
|字符串
VariableNames
- - - - - -变量名
特征向量|字符向量的单元格数组|字符串标量|字符串数组
数据存储中的变量名称,指定为字符向量、字符向量的单元格数组、字符串标量或字符串数组。按照它们在文件中出现的顺序指定变量名。如果没有指定变量名,则数据存储将从第一个文件中的第一个非标题行检测它们。你可以指定VariableNames
但是,对于字符向量或字符串标量,数据存储将属性值转换并存储为字符向量的单元格数组。当修改VariableNames
属性时,新变量名的数量必须与原始变量名的数量匹配。
属性的金宝app值可支持无效的MATLAB标识符作为变量名,例如包含空格和非ascii字符的变量名VariableNamingRule
参数“保存”
.
如果ReadVariableNames
是假
,然后VariableNames
默认为[" Var1”、“Var2”…]
.
例子:“时间”,“日期”,“数量”)
数据类型:字符
|细胞
|字符串
VariableTypes
- - - - - -变量类型
“替身”
|“字符”
|“字符串”
|“分类”
|“datetime”
变量类型,指定为“替身”
,“字符”
,“字符串”
,“分类”
,或“datetime”
,它在读取数据时指示每个变量的类型。
变量类型列表对应于VariableNames
.类型双
,字符
,datetime
可以从数据中自动检测。你可以指定VariableTypes
但是,作为字符向量或字符串标量spreadsheetDatastore
自动将其转换为字符向量的单元格数组或字符串数组。
例子:(“字符”、“分类”)
数据类型:字符
|细胞
|字符串
属性预览
,读
,readall
表格
SelectedVariableNames
- - - - - -要读取的变量
特征向量|字符向量的单元格数组|字符串标量|字符串数组
要从文件中读取的变量,指定为字符向量、字符向量的单元格数组、字符串标量或字符串数组。每个字符向量或字符串包含一个变量的名称。可以以任意顺序指定变量名。你可以指定SelectedVariableNames
但是,使用字符向量或字符串标量spreadsheetDatastore
自动将其转换为字符向量的单元格数组或字符串数组。
若要支金宝app持无效的MATLAB标识符作为变量名,例如包含空格和非ascii字符的变量名,请设置值为VariableNamingRule
参数“保存”
.
例子:[" Var3”、“Var7”、“Var4”)
数据类型:字符
|细胞
|字符串
SelectedVariableTypes
- - - - - -选择的变量类型
“替身”
|“字符”
|“字符串”
|“分类”
|“datetime”
选定的变量类型,指定为“替身”
,“字符”
,“字符串”
,“分类”
,或“datetime”
,表示读取数据时每个选定变量的类型。变量类型列表对应于SelectedVariableNames
.类型双
,字符
,datetime
可以从数据中自动检测。你可以指定SelectedVariableTypes
但是,作为字符向量或字符串标量,它会自动转换为字符向量或字符串数组的单元格数组。
例子:(“双”、“datetime”)
数据类型:字符
|细胞
|字符串
ReadSize
- - - - - -要读取的数据量
“文件”
(默认)|“表”
|正整数标量
类调用中要读取的数据量读
函数,指定为“文件”
或“表”
,或作为正整数标量。
如果
ReadSize
是“文件”
,然后每个呼叫到读
每次读取一个文件中的所有数据。如果
ReadSize
是“表”
,然后每个呼叫到读
每次读取一张表中的所有数据。如果
ReadSize
是正整数,那么每个调用到读
读取指定的行ReadSize
,如果它到达数据的末尾,则会减少。
当你改变ReadSize
从整数标量到“文件”
或“表”
,或者相反,数据存储将使用重置
函数。
数据类型:字符
|字符串
|双
RowTimes
- - - - - -行乘以变量的名称
变量名|变量指数
行次数变量的名称,指定为由“RowTimes”
和变量名(例如“日期”
)或变量索引(例如3.
).
RowTimes
与时间表相关的参数。时间表的每一行都与一个时间相关联,该时间在时间表的时间向量中捕获。中指定的变量。RowTimes
必须包含datetime
或者一个持续时间
向量。
如果的值“OutputType”
是“时间表”
,但你没有具体说明“RowTimes”
,然后spreadsheetDatastore
使用第一个datetime
或持续时间
变量为时间表的行时间。
供用户使用的属性writeall
文件夹
- - - - - -用于构造数据存储的文件夹
字符向量的单元格数组
此属性是只读的。
用于构造数据存储的文件夹,作为字符向量的单元格数组返回。单元格数组以列向量为方向。每个字符向量都是指向包含数据文件的文件夹的路径。的位置
参数中的参数spreadsheetDatastore
而且数据存储
函数定义文件夹
创建数据存储时。
的文件夹
属性时,将重置文件
的属性SpreadsheetDatastore
对象。
数据类型:细胞
金宝appSupportedOutputFormats
- - - - - -支持的写入格式金宝app
字符串行向量
此属性是只读的。
支持写入的格式,金宝app作为字符串的行向量返回。此属性指定使用时可能的输出格式writeall
从数据存储写入输出文件。
DefaultOutputFormat
- - - - - -默认输出格式
字符串标量
对象的功能
hasdata |
确定是否有数据可以读取 |
numpartitions |
数据存储分区数 |
分区 |
对数据存储进行分区 |
预览 |
预览数据存储中的数据子集 |
读 |
读取数据存储中的数据 |
readall |
读取数据存储中的所有数据 |
writeall |
将数据存储写入文件 |
重置 |
将数据存储重置为初始状态 |
sheetnames |
从数据存储中查询表名 |
变换 |
变换数据存储 |
结合 |
组合来自多个数据存储的数据 |
isPartitionable |
确定数据存储是否可分区 |
isSubsettable |
确定数据存储是否可子集 |
isShuffleable |
确定数据存储是否可洗牌 |
例子
创建SpreadsheetDatastore对象
使用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中引入
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。