CSV (Comma Separated Values)是一种表格存储格式,其中单元格值由", "符号分隔。可以用其他字符代替", "分隔符。虽然,AppMaster 需要一个逗号。

重要的是要确保这个字符不出现在单元格内。否则,文件数据将被错误地读取。

首先,创建一个数据模型,CSV文件中的信息将被保存在这里。例如,让我们为航班建立一个数据模型。它将包含以下字段。

DB example

  • flight_no - 航班号,为整数格式。
  • destination(字符串格式)。
  • classes - 此航班可用的航班类别,数组[字符串]格式。

一个将被导入的文件的例子。

File example

第一列包含 flight_no,第二列包含 destination,第三列包含 classes.

在第三列中,数值由分号分隔。

创建一个业务流程

转到 Business Logic标签,并点击 Create Business Process按钮。

Creating BP

这个业务流程需要一个CSV文件,所以把文件字段添加到 Start 块。

Creating variable

接下来,我们需要 Read CSV文件块。

同样地,你可以使用Read XLS fileRead XLSX file 块来实现相应的格式。

Read CSV file 块如何工作。

它有两个输出连接器。 Each Row Completed.当该块被激活时,它将逐行读取文件,每次它将激活 Each Row连接器并传递行号(Row number,从1开始)和Row Columns(当前行的所有列的字符串数组)。

将文件从 Start块传递到 Read CSV file块。

Read CSV block

接下来,添加 For Each Loop块。它将处理字符串数组,将其发送到 Read CSV file块。

对于 Each Loop,就像 Read CSV file,处理数组中的每个元素,并激活 Loop Body 连接器的每一个。

For Each Loop 块中的索引输出字段是数组元素的索引号。它从0开始。

连接所有的连接器。

For each loop block

下一个块是 Switch.在它的帮助下,我们将确定将不同字段的值写入何处。

Switch可以接受任何类型的输入,并且根据它可以激活不同的输出连接器。该 Default 如果输入值与所创建的任何一个连接器不匹配,连接器就会被激活。

CSV文件有三列,这意味着每个Row columns数组中存储有三个值,总是以相同的顺序。

  1. 号码。
  2. 方向。
  3. 类。

因此,我们将创建三个输出连接器在 Switch块中创建三个输出连接器0、1和2,并将索引从 For Each Loop块传递到 Switch块。

switch block

文件中的第一列包含航班号。但是 For Each Loop块获得它的 string 格式获取。因此,我们在保存前用 To integer块在保存前将其转换为整数。之后,用块将其保存到一个变量中。 Set variable块将其保存到一个变量中。

to integer block

文件中的第二列包含方向的 string格式。它可以被立即保存到一个变量中。

Set variable block

文件中的第三列包含一个由分号分隔的类的列表。该 For Each Loop 块也是以字符串格式获取的。所以要把它分割成一个字符串的数组。要做到这一点,我们使用 Split String块。让我们传入一个带有班级列表的字符串,并设置";"为默认分隔符。

将收到的值保存到一个变量中。

Split string block

通过每一行的所有列值的循环设置就完成了。

我们需要从文件中的每一行创建一个条目。我们使用完成的输出连接器在 For Each Loop 块和 Make flight块来做这件事。让我们把周期内收到的所有变量转移到它那里。

completed for each loop connector

现在保存在下列文件中创建的模型 Make flight 使用 DB Create flight 块创建的模型。

DB create block

因此,每一行被保存为数据库中的一条记录。

现在我们需要完成对文件的处理。我们将使用 completed 中的输出连接器,并将其连接到 Read CSV file 块,并将其连接到 End块。

completed read csv file

从文件中导入的BP已经完成。

Endpoint 设置

转到Endpoints 标签并创建一个新的端点。

Creating endpoint

选择 POST方法,设置 URL地址,选择 Flight group,以及创建的BP Import CSV

在前台设置一个按钮

现在我们需要在前端设置一个按钮来上传文件。

将该 File picker元素到画布上。

并为其设置BP。

使用 onSelectfiles触发器。该触发器以数组形式接收文件,即使只有一个文件。因此,我们将使用 Array Element 块,从数组中获取一个元素。让我们把索引字段设置为0,从数组中获得第一个元素。

现在使用 Server request POST /_files/ 块保存到数据库。

Server request post file

使用块来扩展生成的文件。 Expand file块展开生成的文件。

Expand file block

现在将ID (在本例中是一个文件)传递给 Server request POST /flight/csv/块。

Using custom endpoint on frontend

Was this article helpful?

AppMaster.io 101 速成班

10 模块
2 周数

不知道从哪里开始?通过我们的初学者速成课程,从A到Z探索AppMaster。

开始课程
Development it’s so easy with AppMaster!

需要更多帮助?

在我们专家的帮助下解决任何问题。节省时间并专注于构建您的应用程序。

headphones

联系支持

告诉我们您的问题,我们会为您找到解决方案。

message

社区聊天

在我们的聊天中与其他用户讨论问题。

加入社区