2015-07-21 55 views
0

我有一個包含三個自定義列表的SharePoint 2013文檔庫。 每天一次,我想將自定義列表備份爲excel文檔。用於自定義列表的SharePoint備份工具

SharePoint 2013中是否有可以配置爲循環任務的內置功能?

還是應該使用PowerShell或CSOM編寫腳本或由Windows任務運行的應用程序?

回答

0

你不要有任何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"))); 

     } 

     } 

    } 

    } 

    } 

    } 

} 

} 

}