I have created an excel with two sheets and the excel is getting created successfully, but when i open it it ask to repair the excel. I have used open xml librar
EntityCollection CMSInput = service.RetrieveMultiple(new FetchExpression(fetchCMSInputQuery)); tracing.Trace("Start Plugin time:" DateTime.Now.ToString()); MemoryStream ms = new MemoryStream(); SpreadsheetDocument xl = SpreadsheetDocument.Create(ms, SpreadsheetDocumentType.Workbook); WorkbookPart wbp = xl.AddWorkbookPart(); WorksheetPart wsp = null; try { wsp = wbp.AddNewPart(); } catch (Exception ex) { throw new InvalidPluginExecutionException(ex.ToString()); } Workbook wb = new Workbook(); FileVersion fv = new FileVersion { ApplicationName = "Microsoft Office Excel" }; tracing.Trace("Worksheeet Created"); Worksheet ws = new Worksheet(); //First cell SheetData sd = new SheetData(); Columns columns = new Columns(); columns.Append(CreateColumnData(1, 3, 23.5703125)); columns.Append(CreateColumnData(4, 5, 14)); columns.Append(CreateColumnData(6, 20, 18)); ws.Append(columns); UInt32Value row_count = 1; Row row1 = new Row() { RowIndex = 1 }; //Row rowEngagement = new Row() { RowIndex = 1 }; //CreateHeaderEngagement(service, rowEngagement, 1, ms, wb, xl, sd, ws, wbp, wsp, fv, engagementName); CreateHeader(service, row1, 1, ms, wb, xl, sd, ws, wbp, wsp, fv); int MainCountFlag = 1; int RowIndexCountFlag = 2; EntityCollection filtered = new EntityCollection(); foreach (var engagement in CMSInput.Entities) { try { engagementName = "ABC"; var ss = new byte[] { }; row_count = Convert.ToUInt32(RowIndexCountFlag);// Convert.ToUInt32(MainCountFlag 1); row1 = new Row() { RowIndex = Convert.ToUInt32(RowIndexCountFlag) }; Cell c2 = new Cell(); c2 = new Cell { CellReference = "A" row_count, DataType = CellValues.String, StyleIndex = 1, CellValue = new CellValue("123") }; row1.Append(c2); tracing.Trace("first2"); Cell c3 = new Cell(); c3 = new Cell { CellReference = "B" row_count, DataType = CellValues.String, StyleIndex = 1, CellValue = new CellValue("245") }; row1.Append(c3); Cell c10 = new Cell(); c10 = new Cell { CellReference = "C" row_count, DataType = CellValues.String, StyleIndex = 1, CellValue = new CellValue("245") }; row1.Append(c10); ss = new byte[] { }; if (MainCountFlag == CMSInput.Entities.Count) { ss = CreateExcelDoc(service, row1, 1, ms, wb, xl, sd, ws, wbp, wsp, fv, false, ws, wsp, sd); //ss = CreateExcelDoc(service, row1, 1, ms, wb, xl, sd, ws, wbp, wsp, fv, true); } else { ss = CreateExcelDoc(service, row1, 1, ms, wb, xl, sd, ws, wbp, wsp, fv, false, ws, wsp, sd); //ss = CreateExcelDoc(service, row1, 1, ms, wb, xl, sd, ws, wbp, wsp, fv, false); } RowIndexCountFlag ; } catch (Exception ex) { tracing.Trace("Exception ss" ex.Message); } MainCountFlag ; tracing.Trace("MainCountFlag ss" MainCountFlag); //if (MainCountFlag != 0) } WorksheetPart wsp1 = null; try { wsp1 = wbp.AddNewPart(); } catch (Exception ex) { throw new InvalidPluginExecutionException(ex.ToString()); } Worksheet ws1 = new Worksheet(); //First cell SheetData sd1 = new SheetData(); row1 = new Row() { RowIndex = 1 }; CreateHeader(service, row1, 1, ms, wb, xl, sd1, ws1, wbp, wsp1, fv); MainCountFlag = 1; RowIndexCountFlag = 2; foreach (var engagement in CMSInput.Entities) { try { engagementName = "ABC"; var ss = new byte[] { }; row_count = Convert.ToUInt32(RowIndexCountFlag);// Convert.ToUInt32(MainCountFlag 1); row1 = new Row() { RowIndex = Convert.ToUInt32(RowIndexCountFlag) }; Cell c2 = new Cell(); c2 = new Cell { CellReference = "A" row_count, DataType = CellValues.String, StyleIndex = 1, CellValue = new CellValue("123") }; row1.Append(c2); tracing.Trace("first2"); Cell c3 = new Cell(); c3 = new Cell { CellReference = "B" row_count, DataType = CellValues.String, StyleIndex = 1, CellValue = new CellValue("245") }; row1.Append(c3); Cell c10 = new Cell(); c10 = new Cell { CellReference = "C" row_count, DataType = CellValues.String, StyleIndex = 1, CellValue = new CellValue("245") }; row1.Append(c10); ss = new byte[] { }; if (MainCountFlag == CMSInput.Entities.Count) { ss = CreateExcelDoc(service, row1, 1, ms, wb, xl, sd, ws, wbp, wsp, fv, true, ws1, wsp1, sd1); //ss = CreateExcelDoc(service, row1, 1, ms, wb, xl, sd, ws, wbp, wsp, fv, true); } else { ss = CreateExcelDoc(service, row1, 1, ms, wb, xl, sd1, ws1, wbp, wsp1, fv, false, ws1, wsp1, sd1); //ss = CreateExcelDoc(service, row1, 1, ms, wb, xl, sd, ws, wbp, wsp, fv, false); } RowIndexCountFlag ; } catch (Exception ex) { tracing.Trace("Exception ss" ex.Message); } MainCountFlag ; tracing.Trace("MainCountFlag ss" MainCountFlag); //if (MainCountFlag != 0) } public byte[] CreateExcelDoc(IOrganizationService service, Row r1, UInt32Value rowcount, MemoryStream ms, Workbook wb, SpreadsheetDocument xl, SheetData sd, Worksheet ws, WorkbookPart wbp, WorksheetPart wsp, FileVersion fv, bool Upload, Worksheet ws1, WorksheetPart wsp1, SheetData sd1) { sd.Append(r1); byte[] dt = null; if (Upload) { ws.Append(sd); ws1.Append(sd1); wsp.Worksheet = ws; wsp1.Worksheet = ws1; //New Changes WorkbookStylesPart wbsp = wbp.AddNewPart(); //// add styles to sheet Stylesheet stylesheet1 = new Stylesheet() { MCAttributes = new MarkupCompatibilityAttributes() { Ignorable = "x14ac" } }; wbsp.Stylesheet = stylesheet1;//CreateStylesheet(); wbsp.Stylesheet.Save(); // wsp.Worksheet.Save(); wsp1.Worksheet.Save(); Sheets sheets = new Sheets(); Sheet sheet = new Sheet { Name = engagementName, SheetId = 1, Id = wbp.GetIdOfPart(wsp) }; Sheet sheet2 = new Sheet { Name = "Input", SheetId = 2, Id = wbp.GetIdOfPart(wsp1) }; sheets.Append(sheet); sheets.Append(sheet2); wb.Append(fv); wb.Append(sheets); xl.WorkbookPart.Workbook = wb; xl.WorkbookPart.Workbook.Save(); xl.Close(); dt = ms.ToArray(); Entity note = new Entity("annotation"); note["subject"] = "Summary Report"; note["filename"] = "SummaryReport.xlsx"; note["documentbody"] = Convert.ToBase64String(dt); note["objectid"] = new EntityReference("cr493_exportdatatoexcel", SummaryId); var attachmentId = service.Create(note); } //} return dt; } public void CreateHeader(IOrganizationService service, Row r1, UInt32Value rowcount, MemoryStream ms, Workbook wb, SpreadsheetDocument xl, SheetData sd, Worksheet ws, WorkbookPart wbp, WorksheetPart wsp, FileVersion fv) { Cell c1 = new Cell { CellReference = "A2", DataType = CellValues.String, CellValue = new CellValue("Request type"), StyleIndex = (UInt32Value)3U }; r1.Append(c1); // Second cell Cell c2 = new Cell { CellReference = "B2", DataType = CellValues.String, CellValue = new CellValue("Confirming Party"), StyleIndex = (UInt32Value)3U }; r1.Append(c2); // Third cell Cell c3 = new Cell { CellReference = "C2", DataType = CellValues.String, CellValue = new CellValue("Confirming Party Contact"), StyleIndex = (UInt32Value)3U }; r1.Append(c3); // Fourth cell sd.Append(r1); }y.