首页 > 解决方案 > 如何使用 EPPlus 获得绘图填充颜色

问题描述

我想弄清楚如何从 ExcelDrawing 中获取填充颜色。excel文件中有简单的箭头。

我尝试将 ExcelDrawing 转换为具有填充颜色和样式属性的 ExcelShape,这将是完美的,但转换结果为空。我已经尝试过无数次谷歌搜索,但都是徒劳的。大多数关于 ExcelShape 的结果是如何创建一个,而不是阅读。

不确定这是否有帮助,但这就是我尝试过的:

var drawings = worksheet.Drawings;
var drawing = drawings.First(/*that matches the condition*/);
var castDrawing = drawing  as ExcelShape; //this results in null even though the drawing exists

编辑:在 excel 中绘制的箭头是线条类型(来自形状 - >线条)。转换为 ExcelShape 时可以识别任何其他形状。

标签: c#exceldrawingepplusshapes

解决方案


您可能想查看关于图纸的 EPPlus 的 UnitTest。

https://github.com/pruiz/EPPlus/blob/master/EPPlusTest/DrawingTest.cs

这些测试可以很好地了解所有可用的属性。

不确定 First 是否在 Drawings 集合上正确实现,因为它可能是一个库对象。

您可能想尝试: (worksheet.Drawings["shape1"] as ExcelShape).Fill.Color;

在哪里使用您在代码中为形状指定的名称。


推荐阅读