Я не знаю ни одного способа удалить их все одной строкой кода, однако вы можете сделать это, просматривая все рисунки на листе.
using (var p = new OfficeOpenXml.ExcelPackage(new FileInfo(@"c:\FooFolder\Foo.xlsx")))
{
ExcelWorkbook wb = p.Workbook;
ExcelWorksheet ew = wb.Worksheets.First();
//get the number of drawings in the worksheet to loop through.
//Subtract 1 since the drawings use a 0 base index
int drawingCount = ew.Drawings.Count -1;
//loop through the drawings starting at highest number so the collections index doesn't change as you remove them
for(int i = drawingCount; i>=0; i--)
{
//remove the drawing at current index
ew.Drawings.Remove(i);
}
p.Save();
}
Редактировать: После того, как яопубликовал это я нашел гораздо более простой метод.Вы можете использовать ExcelWorksheet.Drawings.Clear()
, этот метод удаляет все чертежи с листа.