【发布时间】:2015-10-10 13:27:16
【问题描述】:
我有一个包含三个自定义列表的 SharePoint 2013 文档库。 每天一次,我想将自定义列表备份为 excel 文档。
SharePoint 2013 中是否有可配置为重复任务的内置功能?
或者应该使用 PowerShell 或 CSOM 编写脚本或应用程序,然后由 Windows 任务运行?
【问题讨论】:
标签: powershell sharepoint sharepoint-2013 csom
我有一个包含三个自定义列表的 SharePoint 2013 文档库。 每天一次,我想将自定义列表备份为 excel 文档。
SharePoint 2013 中是否有可配置为重复任务的内置功能?
或者应该使用 PowerShell 或 CSOM 编写脚本或应用程序,然后由 Windows 任务运行?
【问题讨论】:
标签: powershell sharepoint sharepoint-2013 csom
您没有任何 OOB 功能来执行此操作,我有相同的要求,我编写了一个实用程序 - PFB 代码 - 这将为您提供 .csv 文件中的 o/p
类节目
{
私有静态DataTable dataTable;
私有静态 SPList 列表;
static void Main(string[] args)
{
试试
{
Console.WriteLine("Site Url: ");
string _siteUrl = Console.ReadLine();
if (!string.IsNullOrEmpty(_siteUrl))
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(_siteUrl))
{
if (site != null)
{
SPWeb web = site.RootWeb;
if (web != null)
{
// Export List code segment
Console.WriteLine("List Name:");
string _listName = Console.ReadLine();
if (!string.IsNullOrEmpty(_listName))
{
list = web.Lists[_listName];
if (list != null)
{
dataTable = new DataTable();
//Adds Columns to SpreadSheet
InitializeExcel(list, dataTable);
string _schemaXML = list.DefaultView.ViewFields.SchemaXml;
if (list.Items != null && list.ItemCount > 0)
{
foreach (SPListItem _item in list.Items)
{
DataRow dr = dataTable.NewRow();
foreach (DataColumn _column in dataTable.Columns)
{
if (dataTable.Columns[_column.ColumnName] != null && _item[_column.ColumnName] != null)
{
dr[_column.ColumnName] = _item[_column.ColumnName].ToString();
}
}
dataTable.Rows.Add(dr);
}
}
}
}
System.Web.UI.WebControls.DataGrid grid = new System.Web.UI.WebControls.DataGrid();
grid.HeaderStyle.Font.Bold = true;
grid.DataSource = dataTable;
grid.DataBind();
using (StreamWriter streamWriter = new StreamWriter("C:\\" + list.Title + ".xls", false, Encoding.UTF8))
{
using (HtmlTextWriter htmlTextWriter = new HtmlTextWriter(streamWriter))
{
grid.RenderControl(htmlTextWriter);
}
}
Console.WriteLine("File Created");
#endregion
}
}
}
});
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
Console.ReadLine();
}
// 创建excel函数
public static void InitializeExcel(SPList list, DataTable _datatable)
{
if (list != null)
{
string _schemaXML = list.DefaultView.ViewFields.SchemaXml;
if (list.Items != null && list.ItemCount > 0)
{
foreach (SPListItem _item in list.Items)
{
foreach (SPField _itemField in _item.Fields)
{
if (_schemaXML.Contains(_itemField.InternalName))
{
if (_item[_itemField.InternalName] != null)
{
if (!_datatable.Columns.Contains(_itemField.InternalName))
{
_datatable.Columns.Add(new DataColumn(_itemField.StaticName, Type.GetType("System.String")));
}
}
}
}
}
}
}
}
}
【讨论】: