Hi all,
I created an excel sheet using openxml and i wanted to retrieve list items and corresponding permission levels into excel.Iam using client object model.But iam able to get single item not all items in a list and iam not able to bind permission levels to excel.Below is my code.please help me.
public static void ExportToExcel()
{
string sheetName = @"D:\Praveen\test1.xlsx";
using (SpreadsheetDocument package = SpreadsheetDocument.Create(sheetName, DocumentFormat.OpenXml.SpreadsheetDocumentType.Workbook))
{
int id = 1;
package.AddWorkbookPart();
package.WorkbookPart.Workbook = new Workbook();
package.WorkbookPart.AddNewPart<WorksheetPart>();
ClientContext context = new ClientContext("http://aewvdlotu04law:2544/");
List list = context.Web.Lists.GetByTitle("ExportExcel");
SecurableObject curObj = null;
ListItem curItem = list.GetItemById(id);
curObj = curItem as SecurableObject;
context.Load(list);
context.Load(curItem);
IEnumerable roles = null;
roles = context.LoadQuery(
curObj.RoleAssignments.Include(
roleAsg => roleAsg.Member,
roleAsg => roleAsg.RoleDefinitionBindings.Include(
roleDef => roleDef.Name,
roleDef => roleDef.Description)));
CamlQuery query = new CamlQuery();
query.ViewXml = "<View/>";
ListItemCollection items = list.GetItems(query);
context.Load(items);
context.ExecuteQuery();
package.WorkbookPart.WorksheetParts.First().Worksheet =
new Worksheet(
new SheetData(
new Row(
new Cell(
new InlineString(
new DocumentFormat.OpenXml.Spreadsheet.Text(items[0]["Title"].ToString()))) { DataType
= CellValues.InlineString })));
//new DocumentFormat.OpenXml.Spreadsheet.Text(roles))) { DataType = CellValues.InlineString })));
// Save changes to the spreadsheet part.
package.WorkbookPart.WorksheetParts.First().Worksheet.Save();
// create the worksheet to workbook relation
package.WorkbookPart.Workbook.AppendChild(new Sheets());
package.WorkbookPart.Workbook.GetFirstChild<Sheets>().AppendChild(new Sheet()
{
Id = package.WorkbookPart.GetIdOfPart(package.WorkbookPart.WorksheetParts.First()),
SheetId = 1,
Name = "Excel"
});
package.WorkbookPart.Workbook.Save();
}