我有一个Power Automate流,它调用Office脚本来读取Excel工作簿中的特定单元格。该单元格应该具有格式正确的日期。如果格式正确,为了使Power Automate能够读取该日期,我使用以下表达式设置了一个变量:
addDays('1899-12-30', int(outputs('Run_script_2')?['body/result/DeliveryDate']), 'MM/dd/yy')
但是,如果该脚本的输出不是预期值(即8/9/2022而不是8/9/2022),则在尝试运行该表达式时流程中断。如何编写在没有预期Excel类型日期时不会失败的表达式?如果表达式无法计算实际日期值,我希望表达式等于null。
3条答案
按热度按时间t1qtbnec1#
您可以检查NumberFormatCategory或单元格的特定NumberFormat以检查其格式是否为日期。
或
您也可以将此布尔值返回到Power Automate,并相应地构建表达式。
rdrgkggo2#
下面是我解决这个问题的方法,因为我的用户使用Excel日期字段不止一个日期,比如输入“NA”、“Not Known”、“TBD”等。
对日期值使用INT()函数。使用“配置运行时间”设置将下一步骤配置为仅“失败”。将之后的步骤配置为“跳过”。
在我的例子中,在失败的情况下,我只是将excel值复制到一个字符串中,用于输出文件。如果INT()成功,我运行一个条件语句,因为我想清空未来的日期,但保留过去的日期
rekjcdws3#
您可以尝试使用JavaScript的Date类来转换单元格中的日期。当您创建date对象的示例时,您可以在其构造函数中为它提供单元格中的日期值。然后,您可以调用date对象的
toLocalDateString()
方法并返回该方法。您可以在下面看到如何执行此操作的示例: