2015-07-21 48 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"))); 

     } 

     } 

    } 

    } 

    } 

    } 

} 

} 

}