如何使用PnP PowerShell创建带超链接公式的SharePoint计算列
报错原因
你遇到的类型转换报错是PowerShell解析Formula参数时,把你传入的带逗号的字符串识别为了数组对象,无法匹配参数要求的String类型。同时直接使用Add-PnPField创建计算列无法指定输出为富文本格式,会导致超链接无法正常渲染,只会显示原始HTML代码。
可行解决方案
使用Add-PnPFieldFromXml直接构造字段定义的XML来创建,完整操作代码如下:
# 替换为你实际的列表名 $ListName = "你的列表名" # 构造计算列的XML定义 $fieldXml = @" <Field Type="Calculated" DisplayName="PowerAppLink" InternalName="PowerAppLink" ResultType="Text" RichText="TRUE" RichTextMode="FullHtml"> <Formula>=CONCATENATE("<a href='https://apps.powerapps.com/play/qqq?CABID=",[CAB Number],"'>",Title,"</a>")</Formula> <FieldRefs> <FieldRef Name="CABNumber" /> <FieldRef Name="Title" /> </FieldRefs> </Field> "@ # 执行字段创建 Add-PnPFieldFromXml -List $ListName -FieldXml $fieldXml -AddToDefaultView
注意事项
- XML节点中的小于号
<必须转义为<,避免和XML标签语法冲突导致解析失败 - 请将
FieldRef节点中Name属性的CABNumber替换为你列表内「CAB Number」字段对应的实际内部名称,否则会出现字段引用错误 - 必须保留
ResultType="Text"、RichText="TRUE"、RichTextMode="FullHtml"三个属性配置,才能让计算结果的HTML超链接正常渲染,不会显示为纯文本代码
内容的提问来源于stack exchange,提问作者AlHal
相关产品推荐
相关产品推荐

