首页 > 解决方案 > Excel设置/获取单元格颜色,但对于同一步骤的多个单元格(不同单元格的颜色不同)

问题描述

前言: 我可以在传递/获取二维数组的同一步骤中设置/获取单元格范围 value2 成员:

range.Value2 = some2dArray;
var another2dArray = range.Value2 as Object[,];

问题: 但是Range.Interior.Color成员呢?如何检索/分配单元格的颜色作为/使用二维数组? Range.Interior.Color当我尝试将多个单元格的值作为二维数组获取时,返回 null:

var thisAppearsToBeNull = someRange.Interior.Color as double[,];
var thisAlsoAppearsToBeNull = someRange.Interior.Color as Object[,];

如果我能在不自己迭代整个范围的情况下正确地做到这一点,那就太好了(我不在乎 Excel 的某些底层实现是否会做到这一点;据我所知,Excel 无论如何都会做得更快)。

标签: c#excelvsto

解决方案


这个问题仍然是相关的,但不是那么多。我发现通过在 C# 代码中迭代整个范围来获取/设置颜色已经足够快了,但是在设置颜色的情况下,当用户访问工作表以“查看”那些彩色单元格时,它会导致很少但令人讨厌的冻结。

worksheet.Cells[row, col].Interior.Color = (object)colors[row-1, col-1];

推荐阅读