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

Programmatically export a SharePoint Online list Daily

我从事 SharePoint 已有几年了,这个看似简单的任务却让我感到难过。我想自动导出列表,以便它在每天结束时运行并将报告通过电子邮件发送给我。这是在 O365 中,所以我不能只在服务器上放置一些 PowerShell,从 Task Scheduler 中的 bat 文件调用它并完成。

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

我玩过 SharePoint Online Management Shell 但不知道如何拉入列表数据。

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

您可以通过 CSOM 在组织内的主机上使用 Microsoft.SharePoint.Client 和 运行 轻松执行此操作。我通常通过 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 就可以在任何地方使用。