2016-01-27 94 views
0

我在excel中獲得了6000多個數據,需要將其導入到包含查找列的現有SharePoint列表中。將excel數據導入SharePoint列表中的查找列

例如,如果我在excel中具有列名Country,我希望將此列中的數據插入SharePoint列表中的查找列Country。我嘗試使用訪問分貝,它沒有奏效。

是否有任何其他方式使用JSOMaccess而不是Powershell? (不能使用powershell或任何服務器端編碼)。

回答

0

我認爲列表中的查找字段與excel中的不同。您不能將任何查找或公式從excel鏈接到列表列,因爲從我記憶中,也將excel列映射到列表查找字段也不行。可能您可能需要添加列表中的數據,然後在列表中創建類似的「國家/地區」字段,而是手動創建SharePoint列表查找字段。懷疑CSOM代碼和Open XML SDK等一些Excel工具的使用可以實現自動化。

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對象

好運設置的值!

相關問題