Я пытаюсь удалить лист из файла Excel, и я пробовал много источников из Интернета, но я всегда получаю один и тот же результат: нечитаемый контент.
Ссылка последней: https://blogs.msdn.microsoft.com/vsod/2010/02/05/how-to-delete-a-worksheet-from-excel-using-open-xml-sdk-2-0/
Я также пробовал это:
Sheet sheet = workbook.WorkbookPart.Workbook.Descendants<Sheet>().First(s => s.Name.Equals(sheetName));
sheet.Remove();
workbook.WorkbookPart.Workbook.Save();
Плюс это:
sheet.RemoveAllChildren()
Но файл всегда поврежден.
Пожалуйста!
ОБНОВЛЕНИЕ
using (MemoryStream xlsxStream = new MemoryStream())
{
using (var fileStream = File.OpenRead(templatePath))
fileStream.CopyTo(xlsxStream);
...
using (var workbook = SpreadsheetDocument.Open(xlsxStream, true, new OpenSettings { AutoSave = true }))
{
Sheet sheet = workbook.WorkbookPart.Workbook.Descendants<Sheet>().First(s => s.Name.Equals(sheetName));
sheet.Remove();
workbook.WorkbookPart.Workbook.Save();
...