# 把Microsoft Forms的回复发送到Excel表格

> 用Power Automate建立一个流程，把Microsoft Forms的每份新回复加进OneDrive里的Excel表格，成为新的一行，每个问题一列。
>
> Source: https://docs.officeniaga.com/zh/m365-automate-forms-to-excel/

要把Microsoft Forms的回复发送到Excel，请建立一个有三个步骤的自动化云端流程（automated cloud flow）：Forms的触发器（trigger）**When a new response is submitted**、Forms的操作（action）**Get response details**，以及Excel的操作**Add a row into a table**。之后，每当有人点击**Submit**，几秒钟后新回复就会以一行的形式出现在你OneDrive里的Excel表格。

我们在2026年9月27日测试了这些步骤，使用示例表单“Contoh - Maklum balas pelanggan”（问题有Nama、Emel、Penilaian和Komen）、Siti Aminah提交的一份回复，以及Ali Hassan的OneDrive里的一个Excel文件。

## 开始之前

你需要一个表单和一个Excel文件：

- 一个你在[Microsoft Forms](https://forms.office.com)里拥有的表单。
- 一个放在OneDrive或SharePoint的Excel文件，里面有一个**table**（表格），表头和你的问题对应。Power Automate只能把行添加到表格里。

## 准备Excel文件

流程会把数据写进表格，所以请先设置好表格。

1. 在OneDrive创建一个Excel工作簿，例如`Contoh - Maklum balas pelanggan.xlsx`。
2. 在第1行，每一列输入一个表头：我们用了`Tarikh`、`Nama`、`Emel`、`Penilaian`和`Komen`。
3. 选择表头单元格，然后点击**Insert** → **Table**。勾选**My table has headers**，然后点击**OK**。

   *(Screenshot: Excel网页版的Create Table框，已勾选My table has headers，OK已标示)*

这是大家填写的示例表单：

*(Screenshot: 示例表单Contoh - Maklum balas pelanggan，Siti Aminah已填写Nama、Emel、Penilaian和Komen)*

## 建立流程

先从Forms触发器开始。

1. 在[Power Automate](https://make.powerautomate.com)点击**Create** → **Automated cloud flow**。
2. 为流程命名，例如`Contoh - Borang ke Excel`。
3. 搜索`new response is submitted`，选择**When a new response is submitted**（Microsoft Forms）。点击**Create**。

   *(Screenshot: Build an automated cloud flow框，流程名称和Microsoft Forms的When a new response is submitted触发器已标示)*

4. 在触发器里打开**Form Id**，选择你的表单。如果列表显示**No items**，请先点击**Change connection** → **Add a new connection** → **Sign in to connector**，然后再打开列表。

## 取得答案

触发器只会告诉流程有新回复进来。第二个Forms步骤才会取得答案。

1. 在触发器下面点击<strong>+</strong> → **Add an action**，搜索`Get response details`并选择它。
2. 在**Form Id**选择同一个表单。
3. 点击**Response Id**，然后点击闪电图标（或输入`/` → **Insert dynamic content**），选择**Response Id**。

   *(Screenshot: Get response details，Form Id设为Contoh - Maklum balas pelanggan，Response Id已填写，两者都已标示)*

## 在Excel添加一行

最后一个步骤把答案写进你的表格。

1. 点击<strong>+</strong> → **Add an action**，搜索`Add a row into a table`并选择它（Excel Online (Business)）。
2. 把**Location**设为**OneDrive for Business**，**Document Library**设为**OneDrive**。
3. 在**File**点击文件夹图标，选择你的工作簿。在**Table**选择表格（Excel把第一个表格命名为**Table1**）。
4. 每一列都会出现一个框。点击一个框，然后点击闪电图标，选择属于这一列的答案。列表会按名称显示每个问题，还有**Responders' Email**和**Submission time**。

   *(Screenshot: Get response details下的动态内容列表，显示Nama、Emel、Penilaian和Komen，已标示)*

5. 检查每一列都有对应的答案，然后点击**Save**。

   *(Screenshot: Add a row into a table，已选择Table1，Tarikh、Nama、Emel、Penilaian和Komen列已填入对应的答案，已标示)*

## 测试一下

自己填写表单，或请同事填写。打开Excel文件：通常在一分钟内，就会出现有答案的新一行。

*(Screenshot: Excel表格里Siti Aminah的新一行：日期、名字、电邮、Baik和一条示例评论，已标示)*

Microsoft在[Microsoft Forms connector](https://learn.microsoft.com/en-us/connectors/microsoftforms/)和[Excel Online (Business) connector](https://learn.microsoft.com/en-us/connectors/excelonlinebusiness/)里说明了这些步骤。

## 还有问题？

请通过WhatsApp联系我们的支持团队：[+60 16-916 3324](https://wa.me/60169163324)。

## 常见问题

### 我的表单或Excel文件不在列表里。

Form Id列表只显示你拥有的表单。如果是群组表单，选择Enter custom value，然后贴上表单网址里的ID。至于Excel，文件必须放在OneDrive或SharePoint，而且里面必须有表格：普通的单元格不算。请看准备Excel文件 (#准备excel文件)。

### Excel里的日期慢了8个小时。

Submission time用的是UTC时间，即马来西亚时间减8小时。你可以在Excel设置这一列的格式，或在Excel步骤之前加入标准的Convert time zone操作，然后改用它的输出。

### 流程失败了，显示NotFound。

Excel文件被移动、改名或删除了。把文件放回原处，或打开流程，选择Add a row into a table，再重新选择文件和表格。然后重新提交失败的运行 (/zh/m365-automate-manage-flows/#流程失败时)。

### 我可以把建立流程之前收到的回复也加进去吗？

流程只会处理新的回复。较早的回复，请打开表单，点击View responses → Open results in Excel，然后把它们复制过去。

### 有人正开着这个Excel文件。我们会漏掉一行吗？

不会。Excel网页版允许流程在别人开着文件时添加行。只有桌面App在文件被签出或锁定时，才可能挡住它。
