我们每天收到数十个 Excel 文件,并希望使用 Talend 处理它们。 这些文件中的信息并不总是满足要求。 我们收到 PDF、Word、XML 文件。但我们也收到具有不同工作表名称的 Excel 文件。或者没有所需的布局。
如果布局正确,则工作表始终具有正确的名称。该工作表的标题部分包含 5 行信息。 (固定的) 还有信息部分,可以是1到10行,15列。 如果所有内容都填写正确,则作业运行正常。
但是,如果作业遇到错误的工作表名称等,作业就会因异常而中断。
组件 tFileInputExcel_2 (Jobname_sub_xlsx) 中出现异常 java.lang.RuntimeException:特殊工作表不存在!
如果工作表名称不正确,大多数时候,它是一个与它无关的 Excel 文件,我只想将文件移动到“失败”文件夹并继续。
我该怎么做?
因此,对于您来说,通常当我必须处理引起此类问题的文件时,我将流程分解为两个作业主作业,用于迭代要处理的文件,以及一个子作业,用于读取和处理其中的文件使用 tFileCopy 和 onComponentError 链接。
例如,我有三个 Excel 文件,其中一个具有不同的工作表名称 (test2.xslx)。
我的父作业配置如下:
我通过上下文将文件路径传递给子作业:
确保未选中“发生子作业错误时停止”选项!
我的孩子作业是这样配置的:
如果您在 tFileInputExcel 组件中选中了“出现错误时停止”选项,请取消选中它:
然后使用 tFileCopy 将文件复制到错误/存档文件夹中,并选中“删除源文件”选项:
然后您的文件应该位于目标文件夹中:
希望这有帮助