Quantcast
Channel: Open XML Format SDK forum
Viewing all articles
Browse latest Browse all 1288

How to create multiple worksheets in an Excel workbook and write to the worksheets individually?

$
0
0


I got error opening the Excel file after adding the second worksheet with the following code.  The error message was "We found a problem with some content in 'Test.xlsx.' Do you want us to try to recover as much as we can? If you trust the source of this workbook, click Yes."  I clicked "Yes".  Next message was "The workbook cannot be opened or repaired by Microsoft Excel because it is corrupt."

var worksheetPart2 = workbookPart.AddNewPart<WorksheetPart>();
var relationshipId2 = workbookPart.GetIdOfPart(worksheetPart2);
var sheetSuspense = new Sheet { Name = "Suspense Upload", SheetId = 2, Id = relationshipId2 };

var suspenseSheets = new Sheets();
suspenseSheets.Append(sheetSuspense);
workbook.Append(suspenseSheets);

using (SpreadsheetDocument document = SpreadsheetDocument.Create(fileName, SpreadsheetDocumentType.Workbook))
            {
                WorkbookPart workbookPart;
                OpenXmlWriter writer;

                workbookPart = document.AddWorkbookPart();

                WorkbookStylesPart wbsp = workbookPart.AddNewPart<WorkbookStylesPart>();
                var excelStyleSheet = new ExcelStylesheet();

                // Cell formats
                excelStyleSheet.AddCellFormat("DateTime", (f) =>
                {
                    f.NumberFormatId = 14; //general
                    f.ApplyNumberFormat = BooleanValue.FromBoolean(true);
                });

                excelStyleSheet.AddCellFormat("Numeric", (f) =>
                {
                    f.NumberFormatId = 2; // 0.00
                    f.ApplyNumberFormat = BooleanValue.FromBoolean(true);
                });

                SharedStringTablePart stringTable = workbookPart.AddNewPart<SharedStringTablePart>();

                string XML = @"<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?><sst xmlns=""http://schemas.openxmlformats.org/spreadsheetml/2006/main""></sst>";

                AddPartXml(stringTable, XML);

                var workbook = new Workbook();
                workbookPart.Workbook = workbook;

                var fileVersion = new FileVersion() { ApplicationName = "Microsoft Office Excel" };
                workbook.Append(fileVersion);

                var worksheetPart = workbookPart.AddNewPart<WorksheetPart>();

                var relationshipId = workbookPart.GetIdOfPart(worksheetPart);
                var sheetPayment = new Sheet { Name = "Payment Upload", SheetId = 1, Id = relationshipId };

                var paymentSheets = new Sheets();
                paymentSheets.Append(sheetPayment);
                workbook.Append(paymentSheets);

                writer = OpenXmlWriter.Create(worksheetPart);

                writer.WriteStartElement(new Worksheet());
                writer.WriteStartElement(new SheetData());

                writer.WriteEndElement();      // SheetData

                var worksheetPart2 = workbookPart.AddNewPart<WorksheetPart>();
                var relationshipId2 = workbookPart.GetIdOfPart(worksheetPart2);
                var sheetSuspense = new Sheet { Name = "Suspense Upload", SheetId = 2, Id = relationshipId2 };

                var suspenseSheets = new Sheets();
                suspenseSheets.Append(sheetSuspense);
                workbook.Append(suspenseSheets);

                writer = OpenXmlWriter.Create(worksheetPart);

                writer.WriteStartElement(new Worksheet());
                writer.WriteStartElement(new SheetData());

                writer.WriteEndElement();      // SheetData

                writer.WriteEndElement();      // Worksheet

                writer.Close();

                wbsp.Stylesheet = excelStyleSheet.Stylesheet;
                wbsp.Stylesheet.Save();

                document.WorkbookPart.Workbook.Save();
                document.Close();
            }


Viewing all articles
Browse latest Browse all 1288

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>