gpt4 book ai didi

c# - EPPlus,删除该行中的行和图像

转载 作者:行者123 更新时间:2023-12-04 22:22:12 24 4
gpt4 key购买 nike

using (var pck = new ExcelPackage(new FileInfo(wb_path)))
{
ExcelWorksheet ws = pck.Workbook.Worksheets[ws_name];
ws.DeleteRow(3,1,true);
pck.Save();
}

这不会删除位于该行中的图像。该图像是一个小图标,适合一个单元格。如果在 Excel 中手动删除了行,则它与行一起消失了。

我考虑过先手动删除该行的所有图像,然后再删除该行本身,但是......
 ws.Drawings.Where(r => r.From.Row == 3 && r.To.Row == 3).ToList().ForEach(r => ws.Drawings.Remove(r)); 

...这继续删除一个图像,然后陷入 System.ArgumentOutOfRangeException

最佳答案

我认为这是 EpPlus 的问题。如果您可以删除一个,而不能删除另一个,则可能存在一些索引问题。

您可以尝试反转列表并以相反的顺序删除。

ws.Drawings
.Where(r => r.From.Row == 3 && r.To.Row == 3)
.Reverse()
.ToList()
.ForEach(r => ws.Drawings.Remove(r));

如果您想进一步调查,可以查看 GitHub 的源代码。

这是 EPPlus 中的 ExcelDrawings 类。

https://github.com/JanKallman/EPPlus/blob/master/EPPlus/Drawing/ExcelDrawings.cs

关于c# - EPPlus,删除该行中的行和图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61843748/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com