注:通过分配数据连接权限控制每个人允许访问的
本地服务器目录
,保证数据与权限安全。
-
若需要读取或者上传本地的 Excel 和 CSV 文件数据至 FineDataLink,需要新建一个「服务器本地目录」数据连接,并将要读取的文件放到
%FDL%/webroot/WEB-INF/assets/local_files
路径下,并且有该数据连接的使用权限。
具体请
参见:
配置服务器本地目录数据连接
-
若需要读取远程 FTP/SFTP 服务器 Excel 和 CSV 文件数据,需要配置 FTP/SFTP数据连接,并且有该数据连接的使用权限。具体请参见:
配置FTP/SFTP数据连接
-
4.0.24 版本之前
,仅支持上传后缀小写的 Excel 和 CSV 文件,对于大写后缀的 Excel 和 CSV 文件上传校验不通过。若文件存在,但无法读取,请检查文件后缀是否为大写 .CSV/.XLSX,请手动修改为小写。
3.1 读取 Excel 文件
3.1.1 文件来源
需要提前配置「服务器本地数据连接」或「FTP/SFTP数据连接」且需要有该数据连接的使用权限,下拉框中才会出现选项。
3.1.2 文件类型
支持读取 Excel 文件。
注1:文件类型选择 Excel 时,支持的后缀名:.xls、.xlsx、.XLS、.XLSX
注2:Excel 需要支持满足的版本为 97~ 最新版本。
3.1.3 读取方式
分为两种,「文件读取」和「文件夹读取」。
1)文件读取
也可以使用
参数赋值
进行参数设置。
注:在「文件地址」中,粘贴完整文件地址或者手动输入文件地址后,按 Enter 键保存。
注:手动上传文件,文件需小于100M。
2)文件夹读取
可读取文件夹中的多个同格式文件。
例如文件夹下有两个文件 test1 和 test2 ,若选择「文件夹读取」则会将文件数据合并在一起,如下图所示:
详细示例详情参见:
批量扫描文件同步数据
注:文件夹中的 Excel 文件需要字段名相同;文件夹中的 CSV 文件需要分隔符相同。
配置项
|
说明
|
文件夹地址
|
选取要读取的文件夹。指定文件夹方式:通过界面点击选择文件夹、手动输入文件夹地址(可设置参数,输入参数后需要手动点击选中该参数)
注:在「文件夹地址」中,粘贴完整地址或者手动输入文件夹地址后,按 Enter 键保存
|
读取子文件夹
|
若不勾选,读取时将忽略子文件夹中的文件;勾选时,读取时包括子文件夹中的文件。
|
文件筛选
|
允许配置筛选条件过滤文件夹下的多个文件,获取符合要求的部分文件进行读取。可通过「文件名」和「文件修改时间」来筛选文件。支持通过参数筛选
。
「文件修改时间」理解示例:比如某文件夹中昨天的表是 A 和 B,今天新增表 C ,更新表 B 中的数据,「文件筛选」中筛选「文件修改时间」为今天的表,可筛选出表 C 和表 B(表 B 中的所有数据,非今天更新的数据)。
注1:「文件修改时间」的精确度仅到分钟,暂时无法精确到秒级别。
注2:4.1.1 及之后版本,产品内条件判断逻辑进行了统一,每个运算符的说明可参见:
条件判断逻辑说明
|
3.1.4 sheet 名
填写要读取的 Sheet 名。为空时读取第一个 sheet。sheet 名称支持使用参数。
3.1.5 读取行列范围
指定 Excel 读取起始行和读取结束行,指定 Excel 读取起始列和读取结束列。
数字框中要求为正整数。
3.1.6 首行为字段名
勾选时,将解析到的首行数据作为字段名。
不勾选时,首行将作为实际数据解析。
3.1.7 输出字段
1)自动获取:
将根据解析结果直接读取字段类型,此时「自动获取」界面下不显示输出的字段。
2)手动获取:
注:CSV 文件的情况下,不能选择 date 和 timestamp 类型。
注:追加的字段名称,不允许为空,不能包含空格,不能与其他有效字段名重复。
3.2 读取 CSV 文件
文件来源、读取方式、首行为字段名、输出字段介绍请参见本文 3.1 节内容。
3.2.1 文件类型
文件类型选择 CSV 时,支持读取
类 csv 文件
类型。
例如:支持的文件后缀名:csv、CSV、txt、TXT、tsv、log、dt(csv 和 xml 混合格式)/dbf 等。
3.2.2 读取文件后缀
当用户选择「
文件读取
」方式时,新增该选项。说明如下:
3.2.3 列分隔符
根据指定的分隔符,分隔数据为多列。配置的分隔符需要与文件中实际的分隔符保持一致才可正常解析。
可指定或自定义分隔符。
分隔符可选择:
英文逗号,
、
制表符\t
、
英文分号;
、
管道符|
、
空格
、
ASCII字符
、
自定义
3.2.4 行分隔符
可指定 CSV 中的行分隔符:
CR+LF:在 Windows 系统中使用。
LF:在 Unix、Linux 等系统中使用。
CR:在早期的 Mac OS 系统中使用。
文本限定符、列分隔符、行分隔符彼此不可重复。
3.2.5 文本限定符
用于标识数据值的开始和结束,以避免数据中包含的特殊字符干扰 CSV 文件的解析。
可选择:双引号、单引号、
ASCII 字符(
支持的十进制ASCII编码为0~32
)。
文本限定符、列分隔符、行分隔符彼此不可重复。
3.2.6 编码
指定 CSV 文件编码。编码可选择 GBK、BIG5、ISO-8859-1、UTF-8、UTF-16、EUC_JP、EUC_KR、CP850、GB2312
3.2.7 读取起始行
CSV 文件可以从第 N 行开始取数。
3.3 自定义
可读取 xml、json 等文件类型。
默认获取为文本数据,一个文件一行数据,列名默认为「文件输入」,解析内容功能由后续
XML解析
、
JSON解析
等算子实现。如下图所示:
文件来源、读取方式、文件地址请参见本文 3.1 节。
3.3.1 读取文件后缀
读取方式选择「文件读取」时,新增该选项:
-
不区分大小写。
-
支持写多种格式,以逗号为分隔符。
-
文件后缀不能重复。
3.3.2 编码
编码可选择 GBK、BIG5、ISO-8859-1、UTF-8、UTF-16、EUC_JP、EUC_KR、CP850、GB2312。如下图所示:
3.3 数据预览
「数据预览」界面如下图所示:
说明如下:
-
预览数据量默认最多20行;使用前5000行数据中出现的字段与首行列数(如果指定了首行为字段名称)取并集,作为预览时展示的字段,且仅取数采样前5000条数据,但请不要担心,在输出数据时为全量输出。
-
如果首行字段为合并单元格的情况,将合并单元格进行拆分后,以「字段名称+数字」的方式对拆分后的字段命名,如三个单元格合并后的首行单元格为「姓名」,则命名为姓名、姓名1、姓名2..:
-
如果CSV首行字段有重名情况,以「字段名称+数字」的方式对重复字段命名,如重复字段为姓名,则重复字段命名为姓名1、姓名2...。
-
未勾选首行包含字段名时,字段名称以「column+数字」的方式对解析出的字段依次命名,如colum、column1、column2...。
FDL 工程的定时任务中使用了
「
文件输入
」
算子,其中文件类型选择 CSV,读取方式为文件夹读取:
单元格格式与读取后字段的关系说明:
常规
|
基于原始值判断,可解析成FDL支持的类型,则自动解析,无法解析视为字符串。
|
数值
|
数值
|
货币
|
字符串
数值
|
会计专用
|
字符串
数值
|
日期、时间
|
日期或时间戳
只有年月日解析成日期、含有日期时间解析成时间戳。
|
百分比
|
数值
|
分数
|
数值
|
科学计数法
|
数值
|
文本
|
字符串
|
1)CSV字段类型问题
CSV读取后,输出只有字符串和数字两种类型,数字需要保证不丢精度。对于时间类型,如2022-11-10类型的时间,解析为字符串;时间戳类型的时间解析成数字。
2)合并单元格读取问题
对于合并的单元格,拆分单元格读取,复制值到每个拆分后的单元格进行读取。
3)字段为空的情况
如果标题字段存在空值,则将空值以「column+数字」的方式补充。
如果数字字段存在空值,填NULL
4)不支持 Excel 的多选Sheet读取。
5)不支持文件名通配符。
6)不支持读取设密码的Excel文件。