求助:使用JSON修改SharePoint列表视图以隐藏日期/时间字段的时间部分
我来帮你搞定这个问题!既然没法修改字段类型,靠视图的JSON格式化完全能实现你的需求,分两部分来处理:
一、让「假期开始」字段仅显示日期部分
你可以通过列的JSON格式化,调用SharePoint内置的formatDateTime函数提取日期部分,具体操作和代码如下:
- 打开你的SharePoint列表视图,找到「假期开始」列,点击列标题右侧的下拉箭头,选择格式化此列
- 在弹出的格式化面板中,切换到高级模式,替换默认代码为以下内容:
{ "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json", "elmType": "div", "txtContent": "=formatDateTime([$假期开始], 'yyyy-MM-dd')" }
注意:这里的
[$假期开始]是字段的内部名称,如果你的字段内部名称不同(比如创建时自动生成的英文名称),需要替换成实际的内部名称。可以通过「列表设置」→「字段设置」查看内部名称。
你可以根据需要调整日期格式,比如'MM/dd/yyyy'或者'yyyy年MM月dd日',只要符合标准的日期格式字符串即可。
二、让人员字段仅展示姓名
同样用列格式化来处理人员字段,隐藏其他信息只显示姓名:
- 找到人员列,同样点击下拉选择格式化此列→切换到高级模式
- 粘贴以下JSON代码:
{ "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json", "elmType": "div", "txtContent": "=[$人员字段内部名称].Title" }
替换
[$人员字段内部名称]为你实际的人员字段内部名称,比如如果字段叫「请假人」,内部名称可能是请假人或者LeaveRequestor之类的,以实际为准。
如果是多值人员字段,需要稍微调整代码来遍历显示所有姓名:{ "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json", "elmType": "div", "txtContent": "=join(map([$多值人员字段内部名称], 'item.Title'), ', ')" }
完成以上两步后,保存视图设置,就能看到「假期开始」只显示日期,人员字段只显示姓名的效果啦!
内容的提问来源于stack exchange,提问作者flobbes




