以编程方式导出SharePoint Online列表每日

时间:2015-12-04 23:31:07

标签: sharepoint office365 sharepoint-workflow powershell-ise

我已经在SharePoint上做了几年了,这个看似简单的任务让我很难过。我想自动导出列表,以便在每天结束时运行,并将报告通过电子邮件发送给我。这是在O365,所以我不能在服务器上安装一些PowerShell,从任务调度程序中的bat文件调用它并完成。

我看到有人提到构建.aspx页面并使用Javascript / REST生成报告,这很好,但我不知道如何自动发送每天的电子邮件。

我使用过SharePoint Online Management Shell,但不知道如何提取列表数据。

有人能指出我正确的方向吗?谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用Microsoft.SharePoint.Client通过CSOM轻松完成此操作,并在组织内的主机上运行它。我通常通过C#来做这件事,但它在PowerShell中工作得很好,我借用了来自http://sharepointryan.com/2014/03/07/return-splistitems-using-csom-and-powershell-without-writing-caml/

的元代码
$GLOBAL:Context = New-Object Microsoft.SharePoint.Client.ClientContext("http://Your.O365Url")
$GLOBAL:Credentials = Get-Credential -UserName $EmailAddress -Message "Office 365 Password"
$Context.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Credentials.UserName,$Credentials.Password)
$GLOBAL:Web = $GLOBAL:Context.Web
$GLOBAL:Context.Load($GLOBAL:Web)
$GLOBAL:Context.ExecuteQuery()

$list = $GLOBAL:Web.Lists.GetByTitle("ListOfItems")
$items = $list.GetItems()
$GLOBAL:Context.Load($items)
$GLOBAL:Context.ExecuteQuery()

只要您安装了库,CSOM就可以在任何地方使用。