在 Excel 中记录日常更改,并使用 Power Automate 流报告这些更改

Power Automate 和 Office 脚本相结合,可处理重复任务。 在此示例中,你的任务是每天在工作簿中记录单个数值读取,并报告自昨天以来的更改。 你将生成一个流来获取该阅读内容,将其记录在工作簿中,并通过电子邮件报告更改。

设置:示例 Excel 文件

此工作簿包含脚本所需的数据、对象和格式设置。

示例代码:记录和报告每日读数

将以下脚本添加到示例工作簿。 在 Excel 中,使用 “自动化>新脚本” 粘贴代码并保存脚本。 将其保存为 “记录每日值 ”,然后亲自尝试示例!

function main(workbook: ExcelScript.Workbook, newData: string): string {
  // Get the table by its name.
  const table = workbook.getTable("ReadingTable");

  // Read the current last entry in the Reading column.
  const readingColumn = table.getColumnByName("Reading");
  const readingColumnValues = readingColumn.getRange().getValues();
  const previousValue = readingColumnValues[readingColumnValues.length - 1][0] as number;

  // Add a row with the date, new value, and a formula calculating the difference.
  const currentDate = new Date(Date.now()).toLocaleDateString();
  const newRow = [currentDate, newData, "=[@Reading]-OFFSET([@Reading],-1,0)"];
  table.addRow(-1, newRow);

  // Return the difference between the newData and the previous entry.
  const difference = Number.parseFloat(newData) - previousValue;
  console.log(difference);
  return difference.toString();
}

示例流:报告日常更改

按照以下步骤为示例生成 Power Automate 流。

  1. 创建新的 计划云流

  2. 将流计划为每 1 天重复一次。

    显示它将每天重复的流创建步骤。

  3. 选择“创建”。

  4. 在实际流程中,你将添加一个获取数据的步骤。 数据可能来自其他工作簿、Teams 自适应卡或任何其他源。 若要测试示例,请创建一个测试编号。 添加操作并选择 “初始化变量” 操作。 为它提供以下值。

    1. 名称:输入
    2. 类型:整数
    3. :190000

    使用给定值初始化变量操作。

  5. 添加操作并选择 Excel Online (Business) 连接器的 “运行脚本 ”操作。 对操作使用以下值。

    1. 位置:OneDrive for Business
    2. 文档库:OneDrive
    3. 文件:daily-readings.xlsx (通过文件浏览器) 选择
    4. 脚本:记录每日值
    5. newData 输入 (动态内容)

    具有给定值的“运行脚本”操作。

  6. 该脚本将每日读取差异作为名为“result”的动态内容返回。 对于此示例,可以通过电子邮件将信息发送给自己。 添加操作并选择 Outlook 连接器的“ 发送电子邮件 (V2) ”操作 (或任何你喜欢) 的电子邮件客户端。 使用以下值完成操作。

    1. 目标:电子邮件地址
    2. 主题:每日阅读更改
    3. 正文:“与昨天的差异:”结果 (Excel) 的动态内容

    Power Automate 中已完成的 Outlook 连接器。

  7. 保存流并试用。使用流编辑器页上的“ 测试 ”按钮。 请务必在出现提示时允许访问。