c # удалить все изображения в Excel, используя Epplus - PullRequest
0 голосов
/ 24 октября 2018

У меня есть лист Excel (ws) с несколькими изображениями, и я хочу удалить все это с помощью EPPlus.

это то, что я сделал, и это сработало, но я нене хотите удалить его, используя название картинки

ws.Drawings.Remove("Picture 1");
ws.Drawings.Remove("Picture 2");

есть ли способ удалить их все сразу?

1 Ответ

0 голосов
/ 25 октября 2018

Я не знаю ни одного способа удалить их все одной строкой кода, однако вы можете сделать это, просматривая все рисунки на листе.

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(), этот метод удаляет все чертежи с листа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...