Power apps中将多重筛选后的SharePoint list导出为CSV

        Power apps中经常涉及利用多个组合框ComboBox组合筛选,或组合框中输入多个选项筛选,筛选后的结果在Gallery中呈现,有时也需要将SharePoint list导出方便查看。此代码可实现将多重筛选后的所有内容导出为CSV文件。步骤如下:

1. 在Power Apps端

        a).多个ComboBox、TextInput组合筛选Gallery的内容,方法参考Power apps中组合框ComboBox的多种用法一文中的第3节。

        b).添加下载按钮,在OnSelect属性中输入以下代码,

                Concurrent(
                    Notify("Working on exporting data...", NotificationType.Information),
                    Set(urlCSVfile, dataCSV2.Run(
                        If(Not(IsEmpty(YEARR)),Left(Concat(ComboBoxYear.SelectedItems,Result & ","),Len(Concat(ComboBoxYear.SelectedItems,Result & ","))-1),"all"),
                        If(Not(IsEmpty(BUU)),Left(Concat(ComboBoxBU.SelectedItems,Value & ","),Len(Concat(ComboBoxBU.SelectedItems,Value & ","))-1),"all"),
                        If(Not(IsEmpty(EMSS)),Left(Concat(ComboBoxEMS.SelectedItems,Value & ","),Len(Concat(ComboBoxEMS.SelectedItems,Value & ","))-1),"all"),
                        If(Not(IsBlank(TextInputPN.Text)),TextInputPN.Text,"all"),
                        If(Not(IsEmpty(RESULTT)),Left(Concat(ComboBoxResult.SelectedItems,Value & ","),Len(Concat(ComboBoxResult.SelectedItems,Value & ","))-1),"all"),                                                 If(Not(IsEmpty(ISSUETYPEE)),Left(Concat(ComboBoxIssueType.SelectedItems,Value & ","),Len(Concat(ComboBoxIssueType.SelectedItems,Value & ","))-1),"all")).fileurl)
);
                        Launch(urlCSVfile);     

其中,Notify是在屏幕顶部显示消息;dataCSV2是Power Automate中的自动化流;Launch是文件下载通过URL地址启动。

2. 在Power Automate端

        步骤如下:

        a). 输入为各ComboBox、TextInput的值;

        b). 由于每个ComboBox中可能有多个选中值,因此要利用split函数分离各选项值,并设置数组存储每个ComboBox中的选项值;

        c). 利用concat函数将各选项值转化为可在SharePoint的list中查询的语句,并利用Append to string variable将所有的查询语句串联连成一个可查询语句;

concat('field_1 eq ''', outputs('Compose_arrBU'), '''')

concat(outputs('Compose_eq_arrBU'),' or ')

        d). 将各ComboBox、TextInput编辑好的查询语句利用concat函数串联起来,并利用endwith函数判断结尾是否需要调整;

if(endsWith(outputs('Compose_combine'),' and '), substring(outputs('Compose_combine'),0,sub(length(outputs('Compose_combine')),5)), outputs('Compose_combine'))

        e). 获取SharePoint中指定的list,并在Filter Query中输入完整的查询语句;

        f). 利用Create CSV table创建CSV表格,输入与SharePoint list中一一对应的值;

        g). 在One drive中创建一个文件夹用来存储导出的CSV文件,用Create file创建该文件,并用Create share link by path获取文件地址,再用Respond to a PowerApp or flow输出该文件(注意后面要加上?download=1,用来下载该文件);

        h). 利用Delay等待下载完毕,用List files in folder找到生成的CSV文件,再用Delete file删除文件,此时文件已下载到本地,并且one drive上不再保存。

  • 42
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值