云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

全站加速_php消息中间件_免费领

小七 141 0

简介

这是一篇提交的"用模板增强你的机器人构建"博客文章系列。

在这篇文章中,我将向你展示如何自动化一个过程,在这个过程中,你将不得不读取一个包含未知行数的Excel文件。对于每一行,我们将比较Startdate和当前日期。如果较小,我们将用当前日期+1更新该行的结束日期,并在Excel文件末尾为该条目创建一个新行。

我们将在本教程中学习什么

如何使用Excel库;如何从Excel文件中读取未知行数;如何声明局部变量;如何使用循环;如何使用If语句;如何比较日期变量;如何更新日期值;如何复制和写入Excel文件末尾的行;

要遵循的步骤

如果您熟悉Excel库,请跳到步骤4:

必备条件

Microsoft Office;

说明

创建新项目并为其命名。

转到"工作流"透视图并创建新工作流。

在新工作流的工作空间中,您现在可以添加"Excel库"类别中的活动,但为了使您的项目编译和运行时不会出错,首先需要在项目中启用Excel库脚本:

->转到"脚本"透视图;

->选择"项目"选项卡(左下角);

->右键单击面板中的"全局";

->选择"包含库脚本":弹出"添加库脚本"窗口;

->启用"Excel集成";

->单击"保存";

我们必须在工作流中添加的第一个活动是"初始化Excel",返现网,它初始化Excel库。这一项总是与"结束Excel"活动配合使用,以便在项目中使用完Excel库后关闭它。两个活动都不需要参数。

流程图中的第二个活动是"打开现有Excel文件",我们将在其中设置要读取的文件的路径和名称作为参数。我的excel文件名是SearchByDate.xlsx搜索. 因为我要读取的excel文件保存在我的项目中的"log"文件夹中,所以我将使用ctx.options.path路径.log访问位置:

现在我们访问了我们的文件,大数据的培训,我们可以开始读取它的内容:

列StartDate和EndDate有一个日期格式,因此,我们将保存这些值的变量将具有typeof=date,以便保留格式。

保存的数据应保存在一些变量中,淘客插件,为此,我们必须创建适当的上下文结构:

我们将使用row数组变量来存储Excel文件中将要更新的行。

在接下来的步骤中,我们将声明并初始化三个局部变量,稍后将使用它们。局部变量不会成为上下文结构的一部分,云服务器服务器,但可以以相同的方式使用。局部变量如下所示:sc.localData.NameOfMyVariable变量.

我们要声明以下局部变量:

sc.localData.length长度–其中我们将存储文件中的行数;sc.localData.currentDate当前日期–我们将在其中存储当前日期;sc.localData.nextDay下一天–其中我们将存储当前日期+1;

为此,我们将每次使用系统类别中的设置上下文活动。我会一一解释:

初始化sc.localData.length长度:

我们使用ctx.excel.sheet表格.getLastRow()列"A"上第一个空单元格的行号。我们提取2以消除标题,以及第一个空行。

初始化sc.localData.currentDate当前日期:

我们使用new Date()使其成为日期类型。没有参数时,默认值为当前日期

初始化时也一样sc.localData.nextDay下一天为了使其成为日期类型,联网,并将在单独的步骤中更改其值:

要更改其值,我们将使用.setDate()函数。作为参数,我们使用getDate()函数来获取sc.localData.nextDay下一天(即当前日期)我们加上一个以获得第二天:

我们声明了out变量,现在我们可以实现循环结构,以便迭代Excel文件中存在的每一行。

循环结构包含3个元素:

开始循环:确定循环的开始;退出循环(可在开始或结束时使用):检查退出循环的条件;循环开始:限制应该在循环中执行的步骤;

在我的示例中,我选择在两个循环的开头使用Exit Loop活动:

我们将退出循环的条件,将通过比较迭代次数来完成(sc.localData.startoop程序)与sc.localData.length长度我们在第5步确定的值。

sc.localData.startoop程序在使用循环时自动声明。根据工作流中使用的循环数,迭代器的名称可能不同。

在下一步中,我们将读取每行的StartDate值。我们将把这个值存储在一个新的局部变量中,名为sc.localData.Startdate开始日期.

因为我们将只更新StartDate小于当前日期的数据,仅当满足条件时,我们才会存储整行–这将在下一步中实现。

添加"从Excel库类别获取一个值"活动。

行参数将获取迭代器+2的值。我们添加2,因为迭代器从值0开始。此外,文件中的第一行是标题,我们将跳过读取它。

Column参数采用值"D",因为Startdate在D列上。

最后,我们希望将该单元格的值存储在sc.localdatastart日期.

声明If语句,检查起始日期是否小于当前日期。如果满足此条件,则:

将整行保存在上下文中声明的行数组中;用当前日期更新结束日期;将保存的行写在excel的末尾;使用值更新新行的StartDatesc.localData.NextDay下一天

上述所有活动必须聚集到一个序列中。从Flow类别中添加一个序列活动:

如果我们双击刚在工作流中添加的序列,我们可以添加更新活动。

从Flow添加一个If(start)活动-If分类并在属性中定义条件:

为了下一个活动,我们要添加,只有满足条件才能执行,我们必须在If活动上添加它们,最后应该是这样:

保存行,我们添加了一个"从Excel库类别获取值"活动。

参数必须代表我们要读取的行的位置: