Excel作为源文件的错误处理

2020-09-23 00:28发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在创建一个ETL作业,该作业将从具有多个工作表的excel文件中读取数据,工作表名称以Excel格式硬编码,每个工作表具有不同的数据。

如果Excel文件中没有任何工作表,则ETL作业将失败。 我想提出一种逻辑,以防万一工作表不存在,ETL会跳过该流程而不是抛出错误。 有人可以建议我这样做吗?

致谢

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在创建一个ETL作业,该作业将从具有多个工作表的excel文件中读取数据,工作表名称以Excel格式硬编码,每个工作表具有不同的数据。

如果Excel文件中没有任何工作表,则ETL作业将失败。 我想提出一种逻辑,以防万一工作表不存在,ETL会跳过该流程而不是抛出错误。 有人可以建议我这样做吗?

致谢

付费偷看设置
发送
3条回答
大道至简
1楼-- · 2020-09-23 00:52

嗨,严厉,

您每天都收到相同的工作表吗? 每个工作表都有不同的数据流吗?

jovirus
2楼-- · 2020-09-23 00:34

你好,严苛,

您可以自动执行此过程。 我试图重复您的问题。

职位设计:

init_count脚本包含变量$ lv_counter:

 $ lv_counter = 1;
 print('计数器的起始值为:'|| $ lv_counter);
 

while循环设计:

将变量$ lv_sheetname的值传递给参数$ p_sheetname。

file_name脚本包含以下代码:

 $ lv_sheetname ='Sheet'||  $ lv_counter;
 print('[$ lv_sheetname]中的数据正在处理');
 

数据流设计:

以您的excel格式传递参数值:

cnt_inc脚本包含以下代码:

 $ lv_counter = $ lv_counter + 1;
 print('计数器的新值是:'|| $ lv_counter);
 

在我的excel工作簿中,总共有4张纸,其中sheet3是空白的。

如果您对文件中的张数一无所知,请使用vbscript代码获取张数并将其存储在变量中,而不是在while循环条件中传递值'4',您可以传递该变量 值。 我尝试执行vbscript,但似乎我的服务器未配置Excel。

下面是获取工作表数量的vb代码:

设置objExcel = CreateObject(" Excel.Application")
 设置objWorkbook = objExcel.Workbooks.Open _(" C:\ New Folder \ Sample")
 objExcel.visible =" True"
 SheetCount = objExcel.Worksheets.count
 msgbox SheetCount 

当您执行作业时,即使您的任何工作表为空白,也不会给出任何错误。

让我知道是否有帮助!

谢谢:)

我是小鹏鹏啊
3楼-- · 2020-09-23 00:37

您好 Rajan Burad -感谢您的解释。 您能否建议详细步骤以读取BODS中的不同excel文件。 我尝试使用通配符(* .xlsx),但似乎不起作用。 感谢您的帮助。

一周热门 更多>