本文介绍了如何在命令行方式下, 创建自定义列表, 将外部数据导入到列表以及生成视图.

$listname = "contact0422"
$column_text = @(
"LanID"
"显示名"
"拼音姓"
"拼音名"
"员工号"
"公司邮箱"
"公司名称"
"手机号码"
"公司电话"
"部门名称"
"岗位"
"地区"
"直属领导"
"状态"
)
Connect-SPOCSOM -Username 'abc@company.cn' -Password 'your_pwd' -Url 'https://company.sharepoint.cn/IT/'
<# 新建自定义列表 #>
New-SPOList -Title $listname -TemplateType 100
<# 新建text类型的列 #>
$column_text | ForEach {
New-SPOListColumn -ListTitle $listname -FieldDisplayName $_ -FieldType Text
}
<# 插入值 #>
# 通过Get-SPOListColumn -ListTitle $listname -FieldTitle 'LanID'(此处区分大小写)可以查看InternalName
Import-Csv -Path "C:\Users\IT\Desktop\user details template1 - 副本.csv" -Encoding Default | ForEach-Object {
$fields= @(
@{"fieldname"="LanID";"fieldvalue"=$_.Lanid},
@{"fieldname"="_x663e__x793a__x540d_";"fieldvalue"=$_.显示名},
@{"fieldname"="_x62fc__x97f3__x59d3_";"fieldvalue"=$_.拼音姓},
@{"fieldname"="_x62fc__x97f3__x540d_";"fieldvalue"=$_.拼音名},
@{"fieldname"="_x5458__x5de5__x53f7_";"fieldvalue"=$_.员工号},
@{"fieldname"="_x516c__x53f8__x90ae__x7bb1_";"fieldvalue"=$_.公司邮箱},
@{"fieldname"="_x516c__x53f8__x540d__x79f0_";"fieldvalue"=$_.公司名称},
@{"fieldname"="_x624b__x673a__x53f7__x7801_";"fieldvalue"=$_.手机号码},
@{"fieldname"="_x516c__x53f8__x7535__x8bdd_";"fieldvalue"=$_.公司电话},
@{"fieldname"="_x90e8__x95e8__x540d__x79f0_";"fieldvalue"=$_.部门名称},
@{"fieldname"="_x5c97__x4f4d_";"fieldvalue"=$_.岗位},
@{"fieldname"="_x5730__x533a_";"fieldvalue"=$_.地区},
@{"fieldname"="_x76f4__x5c5e__x9886__x5bfc_";"fieldvalue"=$_.直属领导},
@{"fieldname"="_x72b6__x6001_";"fieldvalue"=$_.状态}
)
New-SPOListItem -ListTitle $listname -ItemTitle $_.员工号 -AdditionalMultipleFields $fields
}

2016-4-25更新:

$listname = "contact0425"
Connect-SPOCSOM -Username 'abc@xyz.cn' -Password 'your_pwd' -Url 'https://company.sharepoint.cn/IT/'
$listnames = Get-SPOList
$column_text = @(
"LanID"
"显示名"
"拼音姓"
"拼音名"
"员工号"
"公司邮箱"
"公司名称"
"手机号码"
"公司电话"
"部门名称"
"岗位"
"地区"
"直属领导"
"状态"
)
if ($listname -in $listnames.title) { Write-Host "$listname is already exist in Sharepoint!!!" }
else {
# 新建自定义列表
New-SPOList -Title $listname -TemplateType 100
# 新建text类型的列
$column_text | ForEach {
New-SPOListColumn -ListTitle $listname -FieldDisplayName $_ -FieldType Text
}}
# 通过Get-SPOListColumn -ListTitle $listname -FieldTitle 'LanID'(此处区分大小写)可以查看InternalName
# 由于中文的关系, internalname会被转成utf8编码,所以这里构建title和internalname之间的哈希表
# 避免了类似这样的代码@{"fieldname"="_x663e__x793a__x540d_";"fieldvalue"=$_.显示名}, 增强了可读性
$ht = $column_text | ForEach {
Get-SPOListColumn -ListTitle $listname -FieldTitle $_
} | Select title, internalname | foreach { @{$_.title = $_.internalname} }
# 插入值
Import-Csv -Path "C:\Users\IT\Desktop\user details template1 - 副本.csv" -Encoding Default | ForEach-Object {
# 下面最外层的@()不是哈希表,而是New-SPOListItem的特性
$fields= @(
@{"fieldname"=$ht.Lanid;"fieldvalue"=$_.Lanid},
@{"fieldname"=$ht.显示名;"fieldvalue"=$_.显示名},
@{"fieldname"=$ht.拼音姓;"fieldvalue"=$_.拼音姓},
@{"fieldname"=$ht.拼音名;"fieldvalue"=$_.拼音名},
@{"fieldname"=$ht.员工号;"fieldvalue"=$_.员工号},
@{"fieldname"=$ht.公司邮箱;"fieldvalue"=$_.公司邮箱},
@{"fieldname"=$ht.公司名称;"fieldvalue"=$_.公司名称},
@{"fieldname"=$ht.手机号码;"fieldvalue"=$_.手机号码},
@{"fieldname"=$ht.公司电话;"fieldvalue"=$_.公司电话},
@{"fieldname"=$ht.部门名称;"fieldvalue"=$_.部门名称},
@{"fieldname"=$ht.岗位;"fieldvalue"=$_.岗位},
@{"fieldname"=$ht.地区;"fieldvalue"=$_.地区},
@{"fieldname"=$ht.直属领导;"fieldvalue"=$_.直属领导},
@{"fieldname"=$ht.状态;"fieldvalue"=$_.状态}
)
New-SPOListItem -ListTitle $listname -ItemTitle $_.员工号 -AdditionalMultipleFields $fields
}

创建视图:

$listname = "contact0412"
Connect-SPOCSOM -Username 'your_id' -Password 'your_pwd' -Url 'https://company.sharepoint.cn/IT/'
$view1_fields=@(
"工号"
"姓名"
"籍贯城市"
)
New-SPOListView -ListName $listname -ViewName "view_1" -ViewFields $view1_fields

使用PowerShell向SharePoint中写入数据的更多相关文章

  1. 向post请求中写入数据,最终保存在了HttpWebRequest.Params中

    一.向post请求中写入数据,最终保存在了HttpWebRequest.Params中: 1)如果存入的是IDictionary类型的字符串变量,如:“username=administrator”, ...

  2. PHP连接sqlserver的两种方法,向sqlserver2000中写入数据,中文乱码

    项目环境是php5.3.28 项目用的ThinkPHP3.2.3  已经mysql5.5数据库,要和另一个项目对接,需要连接sqlsever2000数据库进行一些操作. 第一种用php自带扩展连接数据 ...

  3. 通过I2C总线向EEPROM中写入数据,记录开机次数

    没买板子之前,用protues画过电路图,实现了通过i2c总线向EEPROM中写入和读出数据. 今天,在自己买的板子上面写关于i2c总线的程序,有个地方忘了延时,调程序的时候很蛋疼.下面说说我对I2c ...

  4. 【转】从QDataStream向QByteArray中写入数据时的注意点(QT)

    最近发现从QDataStream向QByteArray中写入数据常常是写不进去的,通过查看QT的源码: QDataStream &operator>>(QDataStream &a ...

  5. POI往word模板中写入数据

    转: POI往word模板中写入数据 2018年03月24日 16:00:22 乄阿斗同學 阅读数:2977  版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn ...

  6. Verilog利用$fdisplay命令往文件中写入数据

    最近在做的事情是,用FPGA生成一些满足特定分布的序列.因此为了验证我生成的序列是否拥有预期的性质,我需要将生成的数据提取出来并且放到MATLAB中做数据分析. 但是网上的程序很乱,表示看不懂==其实 ...

  7. 复制excel表,往excel表中写入数据

    import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import jav ...

  8. POI向Excel中写入数据及追加数据

    import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import ...

  9. 计算机二级-C语言-程序填空题-190117记录-对文件的处理,复制两个文件,往新文件中写入数据。

    //给定程序的功能是,调用函数fun将指定源文件中的内容赋值到指定目标文件中,复制成功时函数返回1,失败时返回0,把复制的内容输出到终端屏幕.主函数中源文件名放在变量sfname中,目标文件名放在变量 ...

随机推荐

  1. shell-bash学习02运算、拼接、重定向

    运算 let操作 可以直接执行基本的算术操作;使用时,变量名之前不需要再添加$; #!/bin/bash no1=4; no2=5; let result=no1+no2 echo $result 自 ...

  2. 手持终端PDA应用固定资产管理系统(资产查询 盘点)软件程序系统

    一.产品概述 固定资产管理系统,是针对企事业单位内部资产管理中出现的工作量大.过程繁琐.追踪困难等一系列难题开发的一套先进管理软件.软件实现了对资产的多种方式管理,目前包括条形码.二维码.RFID管理 ...

  3. 【面试题】HWL

    1.编程题 设计数据结构,模拟浏览器功能: BACK FORWARD VISIT QUIT Visit 未指定具体网址时,返回主页 http://www.xueersi.com 2.指出下列程序的错误 ...

  4. c#如何使用正则表达式ZZ

    什么是正则表达式      正则表达式是用来检验和操作字符串的强大工具.简单的理解正则表达式可以认为是一种特殊的验证字符串.正则表达式常见运用是验证用户输入信息格式,比如上面的那组"\w{1 ...

  5. 80端口被占用,pid=4强制杀进程杀不掉

    解决: http://www.cnblogs.com/myjavawork/articles/1867839.html 把SqlServer的该服务关闭.虽然他显示的进程号跟搜出来的不一样.

  6. OpenCV 第一课(安装与配置)

    OpenCV 第一课(安装与配置) win10,opencv-2.4.13, 安装, vs2013, 配置 下载安装软件 官网OpenCV下载地址下载最新版本,我下载的是opencv.2.4.13,然 ...

  7. iOS之09-特有语法

    1.分类 - Category 1> 基本用途 分类:可以给某个类扩充一些方法(不修改原来的代码) 如何在不改变原来类模型的前提下,给类扩充一些方法? 有2种方式: 继承: 分类(Categot ...

  8. Android AsyncTask

    AsyncTask类任务管理: 内部会创建一个进程作用域的线程池来管理要运行的任务,也就就是说当你调用了AsyncTask#execute()后,AsyncTask会把任务交给线程池,由线程池来管理创 ...

  9. db2代理和优化

    DB2 的代理 (agent) 是位于 DB2 服务器中的服务于应用程序请求的一些进程或线程.当有外部应用程序连接至 DB2 实例提出访问请求时,DB2 的代理就会被激活去应答这些请求.一般 DB2 ...

  10. U-Boot编译过程解析

    解压u-boot-2010.03.tar.bz2就可以得到全部U-Boot源程序.在顶层目录下有29个子目录,分别存放和管理不同的源程序.这些目录中所要存放的文件有其规则,可以分为3类. ● 与处理器 ...