如何使用 Power Automate 从 Dataverse 创建 Excel 行?

How to create Excel rows from Dataverse using Power Automate?

有人可以向我介绍如何使用 Power Automate 从 Dataverse table 创建 Excel 行的教程吗?例如,我有一个 Dataverse table,其中一列是“颜色”。对于每条带有“blue”的记录,我想在 Excel 文件中添加一行。我很难找到解释这一点的 YouTube 或博客,但我确定我只是搜索得不够好。

我尝试连接到 Dataverse table,但不确定如何遍历所有行。也不太了解Dataverse过滤器中的所有命令,我习惯了PowerApps过滤器但习惯了eq和ne等..

有多种方法可以达到您想要的结果。我已经采用了一种相对简单的方法,该方法应该可以满足您的需求,但取决于性能等因素。您可能希望将其更改为其他方法。

首先,我在 DataVerse 中创建了一个带有一些虚拟字段的 table,显然,您只需要使用自己的 table。

这是 table 的结构,因此您有上下文,我已经突出显示了我想要提取的其他字段(以及 ID、名称和创建时间)...

现在在我的流程中,我添加了 Dataverse -> List rows 操作。具体来说,我已根据您的情况将数据过滤到 cr160_color 列的值 blue

下一步涉及遍历从 table 检索到的数据,并将其写入具有 table[ 的 SharePoint 工作区上的 Excel 文档中=65=](必须定义为 table),包含以下字段。

这是流程中的操作步骤...

当它执行时,我得到我的数据...

如果您再次 运行 流,它将使所有数据加倍,因此如果您需要在再次加载之前清除 table(如果您始终可以尝试更新或增量加载可以打扰)那么你可以在加载数据之前注入一个步骤来清除 table.

您可以使用 office 脚本来做到这一点。为此,在 Excel 在线功能区中,您应该有一个名为 Automate ...

的选项卡

在那里,创建一个新脚本,将其命名为清除Table数据并添加此代码...

function main(workbook: ExcelScript.Workbook, worksheetName: string, tableName: string)
{
  let worksheet = workbook.getWorksheet(worksheetName);
  let tableToClear = worksheet.getTable(tableName);

  let rowsToDelete = tableToClear.getRangeBetweenHeaderAndTotal().getRowCount();
  
  try {
    tableToClear.deleteRowsAt(0, rowsToDelete - 1);
  }
  catch { }
}

现在,在将所有数据加载回 ...

之前,将该步骤注入到您的流程中

这是最终流程...