我在excel
中獲得了6000多個數據,需要將其導入到包含查找列的現有SharePoint
列表中。將excel數據導入SharePoint列表中的查找列
例如,如果我在excel中具有列名Country
,我希望將此列中的數據插入SharePoint列表中的查找列Country
。我嘗試使用訪問分貝,它沒有奏效。
是否有任何其他方式使用JSOM
或access
而不是Powershell
? (不能使用powershell或任何服務器端編碼)。
我在excel
中獲得了6000多個數據,需要將其導入到包含查找列的現有SharePoint
列表中。將excel數據導入SharePoint列表中的查找列
例如,如果我在excel中具有列名Country
,我希望將此列中的數據插入SharePoint列表中的查找列Country
。我嘗試使用訪問分貝,它沒有奏效。
是否有任何其他方式使用JSOM
或access
而不是Powershell
? (不能使用powershell或任何服務器端編碼)。
我認爲列表中的查找字段與excel中的不同。您不能將任何查找或公式從excel鏈接到列表列,因爲從我記憶中,也將excel列映射到列表查找字段也不行。可能您可能需要添加列表中的數據,然後在列表中創建類似的「國家/地區」字段,而是手動創建SharePoint列表查找字段。懷疑CSOM代碼和Open XML SDK等一些Excel工具的使用可以實現自動化。
你應該做的是將你的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對象
好運設置的值!