Skip to content

Sheet

如何获取一个Sheet

c#
 using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(dataExcelPath, false))
 {
     WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart;
     Sheet sheet = workbookPart.Workbook.Descendants<Sheet>()
         .FirstOrDefault(s => s.Name == bookName);

     if (sheet == null)
     {
         Console.WriteLine($"not found {bookName}");
         return;
     }

     WorksheetPart worksheetPart = (WorksheetPart)workbookPart.GetPartById(sheet.Id);

     Worksheet worksheet = worksheetPart.Worksheet;

 }

新建一个Sheet

c#

 using (SpreadsheetDocument document = SpreadsheetDocument.Open(filePath, true))
        {
            WorkbookPart workbookPart = document.WorkbookPart;

            WorksheetPart newWorksheetPart = workbookPart.AddNewPart<WorksheetPart>();
            newWorksheetPart.Worksheet = new Worksheet(new SheetData()); 

            uint sheetId = 1; //ID需要唯一
            if (workbookPart.Workbook.Sheets?.Count > 0)
            {
                sheetId = workbookPart.Workbook.Descendants<Sheet>()
                    .Select(s => s.SheetId.Value)
                    .Max() + 1;
            }

            Sheet newSheet = new Sheet()
            {
                Id = document.WorkbookPart.GetIdOfPart(newWorksheetPart),
                SheetId = sheetId,
                Name = sheetName
            };

            Sheets sheets = workbookPart.Workbook.GetFirstChild<Sheets>();
            sheets.Append(newSheet);

        }