Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何用C在excel中使用同一单元格中的多种颜色#_C#_Excel_Winforms_Excel Interop - Fatal编程技术网

C# 如何用C在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

我需要在一个excel单元格中使用多种颜色,但下面的代码仅在最后一个条件下有效

我想要像:格伦红-绿-红-绿-红

        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值是添加第一个元素之前的蓝色。插入后显示绿色。我不想那样做。如何禁用此功能?这是我的主要问题。您可以阅读旧颜色,更改文本并再次应用格式: