导入XLS /行复制:如何在联系人列中显示联系人姓名?

时间:2018-05-08 23:06:17

标签: python-2.7 smartsheet-api

看到smartsheet SDK的1.3.3版本以及直接从SDK导入XLS文件的能力(我还没有尝试过),我开始考虑如何实现上传非常大的目标具有最少请求数的工作表。 (参见相关问题:Building whole sheet programmatically with Python SDKHow to create a project sheet via the python SDK

我目前的测试方法是导入一个XLS文件(虽然目前为止用户界面),但格式不正确(尝试制作项目表,有甘特图和资源管理)。

使用python SDK,我使用Sheets.copy_rows()方法将UI中导入的工作表中的行复制到我的项目工作表模板后创建的另一个空白工作表。

这似乎完美无缺,但联系人栏目除外,我想在其中显示联系人姓名而不是联系电子邮件地址。

根据https://smartsheet-platform.github.io/api-docs/?python#contact-list-columns

  

创建或更新联系人列表列的单元格时,   displayValue属性的工作方式如下:

     
      
  • 如果displayValue为非null且非空,则Smartsheet单元格显示提供的值。
  •   
  • 如果displayValue为空字符串,则Smartsheet单元格会显示电子邮件地址。
  •   
  • 如果displayValue为null或不存在,Smartsheet会根据电子邮件填写联系人名称,以此作出最佳猜测   地址。
  •   

查看我从导入创建的工作表,我可以看到我的单元格数据为:{"columnId": 7027801426552708, "value": "eleroy@******.com"}

根据上面的文档,由于displayValue不存在,我希望复制到联系人列表列中会尝试根据电子邮件地址填写联系人姓名。

有没有办法可以强制它在XLS导入或复制过程中转换为联系人姓名?

编辑:

正如下面的一些答案所示,我认为副本会按原样复制数据是有道理的,所以我试图让它在XLS导入时填写联系人名称。

我试图找到一种方法在Excel中注入显示值和值,但还没有成功。我尝试过超链接,电子邮件链接,= HYPERLINK()公式,但到目前为止还没有成功。

2 个答案:

答案 0 :(得分:0)

如果您使用电子邮件地址设置displayValue并将value设置为联系人姓名,那么您应该能够获得您正在寻找的内容。例如,通用HTTP请求的以下主体将显示" MyUser Gmail"在单元格中,但使用myuser@gmail作为联系电子邮件。

[
  {
   "toBottom": true, 
   "cells": [
      {
       "columnId": 6xxxxxxxxxxxxxx8, 
       "value": "myuser@gmail.com", 
       "displayValue": "MyUser Gmail"
      }
    ]
  }
]

答案 1 :(得分:0)

如果displayValue为空,则表示此单元格的联系人没有与之关联的名称。如果您的原始工作表确实包含名称,则复制过程中可能会出现故障点。

不考虑Python SDK,我猜可能copy_rows()只是value而不是displayValue。尝试手动设置接触单元格的值/ displayValue,看看是否有效。