Power Automate: 从Excel 选择列,每200条生成一个CSV文件并保存在sharepoint文档库

这本来算是一个很简单的流程,之所以写这篇文章,是因为列出表中的行数限制为256条,若要获取所有行,需要启用分页.

参考微软官方的Excel connector的已知问题于限制

用途:分割的文件可以使用邮件发送给不同的收件人,可以调用API写入到数据库或第三方系统 等.

下面直接创建flow.

1. 添加手动触发器.

2. 添加 List rows present in a table, 重点:启用分页.

分页设置:

3. 添加Select选择需要的列.

perl 复制代码
{
    "type": "Select",
    "inputs": {
      "from": "@outputs('List_rows_present_in_a_table')?['body/value']",
      "select": {
        "OrderNo": "@item()?['OrderNumber']",
        "Line": "@item()?['LineNumber']"
      }
    },
    "runAfter": {
      "List_rows_present_in_a_table": [
        "Succeeded"
      ]
    }
  }

4. 初始化循环变量

  • 初始化变量:名称=startIndex,类型=Integer,值=0
  • 初始化变量:名称=fileCount,类型=Integer,值=1

5. 添加Do until直至处理完所有行.

ini 复制代码
Until= variables('startIndex') >= length(body('Select'))

6. 循环内部:

a. 添加一个Compose

less 复制代码
  take( skip(body('Select'), variables('startIndex')),200)

b.添加 Create CSV table

css 复制代码
  {
    "type": "Table",
    "inputs": {
      "from": "@outputs('Compose')",
      "format": "CSV"
    },
    "runAfter": {
      "Compose": [
        "Succeeded"
      ]
     }
  }

c. 添加 create file.

ini 复制代码
  File Name= concat('output_', string(variables('fileCount')), '.csv')
  File Content = body('Create_CSV_table')

d. 添加: Increment startIndex by 200.

e. 添加: Increment fileCount by 1.

流程中,可以使用chunk函数来操作行数的分割.

对于动态内容的Excel文件,可以添加标记列来标记是否已存在在分割的文件中 (Excel中的每一行需要一个唯一的ID). 当记录被写入CSV文件后,标记为是,或者使用日期和时间生成字符串来标识,这样不用每次都读取所有记录.

流程概览如下:

相关推荐
一枚前端小姐姐2 天前
低代码平台表单设计系统技术分析(实战三)
前端·vue.js·低代码
一枚前端小姐姐2 天前
低代码平台表单设计系统技术分析(实战二)
低代码·架构·前端框架
一枚前端小姐姐2 天前
低代码平台表单设计系统架构分析(实战一)
前端·低代码·架构
LAM LAB3 天前
【VBA】Excel指定单元格范围内字体设置样式,处理导出课表单元格
excel·vba
麦聪聊数据3 天前
统一 Web SQL 平台如何收编企业内部的“野生数据看板”?
数据库·sql·低代码·微服务·架构
在这habit之下3 天前
Keepalived学习总结
excel
Youngchatgpt3 天前
如何在 Excel 中使用 ChatGPT:自动化任务和编写公式
人工智能·chatgpt·自动化·excel
开开心心就好3 天前
安卓开源应用,超时提醒紧急人护独居安全
windows·决策树·计算机视觉·pdf·计算机外设·excel·动态规划
D_C_tyu3 天前
Vue3 + Element Plus | el-table 多级表头表格导出 Excel(含合并单元格、单元格居中)第二版
vue.js·elementui·excel