C# 如何用C在excel中使用同一单元格中的多种颜色#
我需要在一个excel单元格中使用多种颜色,但下面的代码仅在最后一个条件下有效 我想要像:格伦红-绿-红-绿-红C# 如何用C在excel中使用同一单元格中的多种颜色#,c#,excel,winforms,excel-interop,C#,Excel,Winforms,Excel Interop,我需要在一个excel单元格中使用多种颜色,但下面的代码仅在最后一个条件下有效 我想要像:格伦红-绿-红-绿-红 List<string> myTexts = new List<string> { "aaaaaaaaaaaaaaaaa", // green expected "bbbbbbbbbbbbbbbbb", // red expected "ccccccc
List<string> myTexts = new List<string>
{
"aaaaaaaaaaaaaaaaa", // green expected
"bbbbbbbbbbbbbbbbb", // red expected
"ccccccccccccccccc", // green expected
"ddddddddddddddddd", // red expected
"eeeeeeeeeeeeeeeee", // green expected
"fffffffffffffffff" // red expected
};
var startIndex = 1;
for (int i = 0; i < liste.Count; i++)
{
cell.Value2 += myTexts[i];
if (i%2 == 0)
{
cell.Characters(startIndex, myTexts[i].Length).Font.Color= Color.Green;
}
else
{
cell.Characters(startIndex, myTexts[i].Length).Font.Color = Color.Red;
}
startIndex += myTexts[i].Length;
}
它的工作原理是:绿-绿-红
List<string> myTexts = new List<string>
{
"aaaaaaaaaaaaaaaaa", // green expected
"bbbbbbbbbbbbbbbbb", // red expected
"ccccccccccccccccc", // green expected
"ddddddddddddddddd", // red expected
"eeeeeeeeeeeeeeeee", // green expected
"fffffffffffffffff" // red expected
};
var startIndex = 1;
for (int i = 0; i < liste.Count; i++)
{
cell.Value2 += myTexts[i];
if (i%2 == 0)
{
cell.Characters(startIndex, myTexts[i].Length).Font.Color= Color.Green;
}
else
{
cell.Characters(startIndex, myTexts[i].Length).Font.Color = Color.Red;
}
startIndex += myTexts[i].Length;
}
List mytext=新列表
{
“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
“bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
“ccccccccccccc”//预期为绿色
“dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd
“eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
“ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
};
var startIndex=1;
for(int i=0;i
如果将循环外的cell.value2文本设置为完整字符串,并在之后操作样式,则应该可以:
cell.Value2 = string.Join("", myTexts);
var startIndex = 1;
for (int i = 0; i < myTexts.Count; i++)
{
if (i % 2 == 0)
{
cell.Characters[startIndex, myTexts[i].Length].Font.Color = Color.Green;
}
else
{
cell.Characters[startIndex, myTexts[i].Length].Font.Color = Color.Red;
}
startIndex += myTexts[i].Length;
}
cell.Value2=string.Join(“,MyText”);
var startIndex=1;
for(int i=0;i
Marinus首先感谢您的回复。实际上,如果cell.Value2没有字符串值,您的代码就可以工作,但是我在单元格中有一个字符串值,比如xxxxxxxxx。在我开始将列表中的第一个元素添加到单元格中后,它将采用其颜色。例如,xxxxxxx值是添加第一个元素之前的蓝色。插入后显示绿色。我不想那样做。如何禁用此功能?这是我的主要问题。您可以阅读旧颜色,更改文本并再次应用格式: