2015-07-21 3 views
0

У меня есть библиотека документов SharePoint 2013 с тремя настраиваемыми списками. Один раз в день я хотел бы сделать резервную копию пользовательских списков в качестве документов Excel.Инструмент резервного копирования SharePoint для пользовательских списков

Есть ли встроенная функциональность в SharePoint 2013, которая может быть настроена как повторяющаяся задача?

Или следует использовать PowerShell или CSOM для написания сценария или приложения, которое затем запускается в Windows Task?

ответ

0

вы не имеют какую-либо функцию OOB, чтобы сделать это, я имел такой же REQ и я написал утилиту - PfB кода - это даст вам о/р в CSV-файле

программа учащейся

{

частный статический DataTable dataTable;

закрытый статический список SPList;

статическая силы основной (String [] арг)

{

попробовать

{

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 _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"))); 

     } 

     } 

    } 

    } 

    } 

    } 

} 

} 

}

Смежные вопросы