class Program { static void Main(string[] args) { string strDoc = @"..\..\Documents\Sheet9.xlsx"; Stream stream = File.Open(strDoc, FileMode.Open); OpenAndAddToSpreadsheetStream(stream); stream.Close(); } public static void OpenAndAddToSpreadsheetStream(Stream stream) { // Open a SpreadsheetDocument based on a stream. SpreadsheetDocument spreadsheetDocument =SpreadsheetDocument.Open(stream, true); // Add a new worksheet. WorksheetPart newWorksheetPart = spreadsheetDocument.WorkbookPart.AddNewPart(); newWorksheetPart.Worksheet = new Worksheet(new SheetData()); newWorksheetPart.Worksheet.Save(); Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook.GetFirstChild(); string relationshipId = spreadsheetDocument.WorkbookPart.GetIdOfPart(newWorksheetPart); // Get a unique ID for the new worksheet. uint sheetId = 1; if (sheets.Elements().Count() > 0) { sheetId = sheets.Elements().Select(s => s.SheetId.Value).Max() + 1; } // Give the new worksheet a name. string sheetName = "Sheet" + sheetId; // Append the new worksheet and associate it with the workbook. Sheet sheet = new Sheet() { Id = relationshipId, SheetId = sheetId, Name = sheetName }; sheets.Append(sheet); spreadsheetDocument.WorkbookPart.Workbook.Save(); // Close the document handle. spreadsheetDocument.Close(); // Caller must close the stream. } }