c# - 如何使用 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 时可以识别任何其他形状。
解决方案
您可能想查看关于图纸的 EPPlus 的 UnitTest。
https://github.com/pruiz/EPPlus/blob/master/EPPlusTest/DrawingTest.cs
这些测试可以很好地了解所有可用的属性。
不确定 First 是否在 Drawings 集合上正确实现,因为它可能是一个库对象。
您可能想尝试: (worksheet.Drawings["shape1"] as ExcelShape).Fill.Color;
在哪里使用您在代码中为形状指定的名称。
推荐阅读
- templates - helm模板变量中如何判断helm verison
- amazon-web-services - 在 AWS Cognito 中自定义电子邮件验证页面
- google-maps - Google Maps Static API:错误 413(请求实体太大)
- c# - C# WPF - 在 DataView 中添加新项目后显示在 ListBox 中排序的项目
- c++ - 对向量结构进行排序 C++
- javascript - 如何在打字稿中没有运行时副作用的情况下进行精确的类型检查?
- laravel-8 - 在生产中找不到表 - Laravel
- unit-testing - 是否存在“无效的 Facebook 评论”?
- entity-framework-6 - System.TypeLoadException:无法从程序集“EntityFramework”加载类型“System.Data.Entity.Infrastructure.Design.Executor+GetContextType”
- swift - IBOutlet/IBAction 和以编程方式构建视图之间的快速区别?