我想用c#检索excel单元格的背景颜色,但我找不到办法做到这一点
我应该使用哪个库? microsoft.office.tools.excel.workbook.aspx
或microsoft.office.interop.excel
?什么是不同的?
我尝试过以下代码,但没有运气:
# A tibble: 20 x 5
game_id team_id action_id time_ref is_even
<int> <int> <int> <int> <int>
1 100 10 1 1000 1
2 100 10 1 1001 1
3 100 10 1 1002 1
4 100 11 1 1003 1
5 100 11 2 1004 1
6 100 11 1 1005 1
7 100 10 3 1006 1
8 100 11 1 1007 0
9 100 10 1 1008 0
10 100 10 1 1009 0
11 101 12 3 1000 1
12 101 12 1 1001 1
13 101 12 1 1002 1
14 101 13 2 1003 1
15 101 13 3 1004 1
16 101 12 1 1005 0
17 101 13 1 1006 0
18 101 13 1 1007 0
19 101 12 1 1008 0
20 101 12 1 1009 0
答案 0 :(得分:2)
有一个很好的名为EPPlus的lib,它使你与excel的关系变得更加容易。你可以在NuGet上找到它 因此,使用此代码获取颜色:
var x = sheet.Cells[rowIndex, colIndex].Style.Fill.BackgroundColor;
这是设置颜色:
sheet.Cells[rowIndex, colIndex].Style.Fill.SetCellsColor( Color.Yellow );
答案 1 :(得分:1)
最简单的解决方案:
private void Get_Colors()
{
Excel.Workbook excel = Globals.ThisAddIn.Application.ActiveWorkbook;
Excel.Worksheet sheet = null;
Excel.Range ran = sheet.UsedRange;
for (int x = 1; x <= ran.Rows.Count; x++)
{
for (int y = 1; y <= ran.Columns.Count; y++)
{
string CellColor = sheet.Cells[x, y].Interior.Color.ToString(); //Here I go double value which is converted to string.
if (sheet.Cells[x, y].Value != null && (CellColor == Color.Transparent.ToArgb().ToString() || **CellColor == Excel.XlRgbColor.rgbGold.GetHashCode().ToString()**))
{
sheet.Cells[x, y].Interior.Color = Color.Transparent;
}
}
}
}