-2

Could you please provide the c# code to delete Excel Table from worksheet. Thank you!

Cindy Meister
  • 25,071
  • 21
  • 34
  • 43
Sergey
  • 47
  • 5
  • SO is for asking questions, and before that you should have tried to do it yourself. – James Z Nov 17 '18 at 06:14
  • James, sure, i tried. Spent several hours on this... table.xml file disappeared from the package, but the references are still in sheet.xml: – Sergey Nov 17 '18 at 22:06

1 Answers1

0

Here is the code to delete all Tables in all sheets:

 using (SpreadsheetDocument xl = SpreadsheetDocument.Open(targetFile, true))
        {
            WorkbookPart workbookPart = xl.WorkbookPart;
            foreach (WorksheetPart sheet in workbookPart.WorksheetParts)
            {
                List<TableDefinitionPart> TableDefinitionPartToDelete = new List<TableDefinitionPart>();
                var TableParts = sheet.Worksheet.WorksheetPart.Worksheet.Descendants<TablePart>();

                List<TablePart> TablePartToDelete = new List<TablePart>();

                foreach (var Item in TableParts)
                {
                    TablePartToDelete.Add(Item);
                }
                foreach (var tp in TablePartToDelete)
                {
                    tp.Remove();
                }

                foreach (TableDefinitionPart Item in sheet.TableDefinitionParts)
                {
                    TableDefinitionPartToDelete.Add(Item);
                }

                foreach (TableDefinitionPart Item in TableDefinitionPartToDelete)
                {               
                    sheet.DeletePart(Item);
                }
            }

            xl.Close();
        }
Sergey
  • 47
  • 5