我有一個包含三個自定義列表的SharePoint 2013文檔庫。 每天一次,我想將自定義列表備份爲excel文檔。用於自定義列表的SharePoint備份工具
SharePoint 2013中是否有可以配置爲循環任務的內置功能?
還是應該使用PowerShell或CSOM編寫腳本或由Windows任務運行的應用程序?
我有一個包含三個自定義列表的SharePoint 2013文檔庫。 每天一次,我想將自定義列表備份爲excel文檔。用於自定義列表的SharePoint備份工具
SharePoint 2013中是否有可以配置爲循環任務的內置功能?
還是應該使用PowerShell或CSOM編寫腳本或由Windows任務運行的應用程序?
你不要有任何OOB功能,要做到這一點,我有同樣的REQ和我寫了一個實用程序 - PFB代碼 - 這會給你的O/P在.csv文件
類節目
{
private static DataTable dataTable;
private static SPList list;
靜態無效的主要(字串[] 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)
{
如果(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網格=新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 funution
公共靜態無效InitializeExcel(SPList列表,數據表_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")));
}
}
}
}
}
}
}
}
}