You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Graph/CSOM在SharePoint列表创建多值Choice列

SharePoint列表创建开启多值选择的Choice列实现方案

你需要启用的多值选择设置项如下:
设置项示意图

不管是CSOM还是Graph API都可以直接实现该需求,核心是配置对应多选属性,不要使用默认单选Choice列的创建参数:

SharePoint CSOM 实现方式

创建列时不要使用默认单选Choice类型,需将字段类型指定为MultiChoice,核心代码示例如下:

using (ClientContext ctx = new ClientContext("目标站点地址"))
{
    // 配置你的站点认证信息
    ctx.Credentials = new SharePointOnlineCredentials("登录账号", "账号密码对应安全字符串");
    List targetList = ctx.Web.Lists.GetByTitle("目标列表名称");
    
    // 构造多选Choice列的字段Schema
    string fieldSchema = @"<Field Type='MultiChoice' DisplayName='自定义多选列' Required='FALSE' Format='Dropdown' FillInChoice='FALSE'>
        <CHOICES>
            <CHOICE>选项A</CHOICE>
            <CHOICE>选项B</CHOICE>
            <CHOICE>选项C</CHOICE>
        </CHOICES>
    </Field>";
    
    Field newField = targetList.Fields.AddFieldAsXml(fieldSchema, true, AddFieldOptions.AddToDefaultContentType);
    newField.Update();
    ctx.ExecuteQuery();
}

如果通过FieldChoice对象属性方式创建,除了设置AllowMultipleValues = true外,必须同步将字段类型修改为MultiChoice,否则配置不会生效。

Microsoft Graph API 实现方式

调用创建列接口时,在choice配置节点下增加allowMultipleSelection: true参数即可开启多值选择,请求示例如下:

POST https://graph.microsoft.com/v1.0/sites/{站点ID}/lists/{列表ID}/columns
Content-Type: application/json

{
  "displayName": "自定义多选列",
  "description": "开启多值选择的选项列",
  "choice": {
    "allowTextEntry": false,
    "choices": ["选项A", "选项B", "选项C"],
    "displayAs": "dropDownMenu",
    "allowMultipleSelection": true
  }
}

常见踩坑说明

  • 仅给Choice列设置AllowMultipleValues属性但不修改字段类型为MultiChoice时,CSOM不会报错但多选开关不会开启
  • Graph接口如果漏传allowMultipleSelection参数,默认创建的是单选Choice列,和截图里开关关闭的状态一致
  • 以上两种方式创建完成后,不需要额外更新配置,直接进入列表设置就能看到多值选择开关处于开启状态

内容的提问来源于stack exchange,提问作者Rafa Ayadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 18:51:48