将Excel数据导入SharePoint列表中的查找列

时间:2016-01-27 06:07:03

标签: javascript ms-access sharepoint sharepoint-2013 excel-2013

我在excel中收到了超过6000个数据,这些数据需要导入到包含查询列的现有SharePoint列表中。

例如,如果我在Excel中有列名Country,我希望将此列中的数据插入SharePoint列表中的查找列Country。我尝试使用访问数据库,但它没有用。

使用除JSOM以外的accessPowershell还有其他方式吗? (不能使用powershell或任何服务器端编码)。

2 个答案:

答案 0 :(得分:0)

我认为列表中的查找字段与excel中的查找字段不同。您不能将我从excel链接到列表列的任何查找或公式链接到列表列,也不能将excel列映射到列表查找字段。可能您可能必须从列表中添加数据,然后在列表中创建类似的“国家/地区”字段,但手动创建SharePoint列表查找字段。毫无疑问,这可以在没有CSOM代码和使用一些excel工具(如Open XML SDK)的情况下实现自动化。

答案 1 :(得分:0)

您应该做的是将Excel文件保存为CSV文件(避免使用比实际情况更复杂的openXML方法)。然后在c#中,您可以使用System.IO.File读取文件并遍历每一行

string[] _fileData = System.IO.File.ReadAllLines(_filePath);

_fileData将是一个多维数组,用于行和列。

填写查询字段,您可以使用CSOM来实现此目的。请参阅我复制的示例代码:https://karinebosch.wordpress.com/2015/05/11/setting-the-value-of-a-lookup-field-using-csom/

 CamlQuery camlQueryForItem = new CamlQuery();
 camlQueryForItem.ViewXml = string.Format(@"<View>
          <Query>
              <Where>
                 <Eq>
                     <FieldRef Name='{0}'/>
                     <Value Type='{1}'>{2}</Value>
                 </Eq>
               </Where>
           </Query>
    </View>", lookupFieldName, lookupFieldType, value);

  listItemCollection listItems = list.GetItems(camlQueryForItem);
  clientContext.Load(listItems, items => items.Include
                                    (listItem => listItem["ID"],
                                     listItem => listItem[lookupFieldName]));
  clientContext.ExecuteQuery();

  if (listItems != null)
  {
      ListItem item = listItems[0];
      lookupValue = new FieldLookupValue();
      lookupValue.LookupId = Int.Parse(item["ID"].ToString());

首先通过CAML查询获取listItem,然后通过FieldLookupValue对象设置值

祝你好运!