c#excel将多色文本写入同一单元格

c#excel将多色文本写入同一单元格,c#,excel,C#,Excel,我想用不同的条件将文本写入excel单元格。例如,如果选定值为红色,excel单元格文本可能为红色。我正在使用枚举定义颜色,名称为ExcelColorType,但它不起作用。我错过了什么 下面有一些源代码 private static void ExcelSatirGuncelle(工作表工作表、字符串消息、int rowNumber、ExcelColorType) { var cell=worksheet.Cells[rowNumber,7]; 字符串值=cell.Value2; if(str

我想用不同的条件将文本写入excel单元格。例如,如果选定值为红色,excel单元格文本可能为红色。我正在使用枚举定义颜色,名称为ExcelColorType,但它不起作用。我错过了什么

下面有一些源代码

private static void ExcelSatirGuncelle(工作表工作表、字符串消息、int rowNumber、ExcelColorType)
{
var cell=worksheet.Cells[rowNumber,7];
字符串值=cell.Value2;
if(string.IsNullOrEmpty(值))
价值=”;
cell.Font.Bold=true;
cell.ColumnWidth=200;
cell.Value2+=message+Environment.NewLine;
cell.Characters(values.Length,message.Length).Font.Color=colorType==ExcelColorType.Yesil?Color.Green:Color.Red;
worksheet.Cells.verticalignment=XlVAlign.xlVAlignCenter;
worksheet.Cells.HorizontalAlignment=XlHAlign.xlHAlignLeft;
}
实际上,这段代码是在运行时运行的。但所有文本都是绿色的。我有几个条件,如果颜色可能是颜色。红色,但所有的文本是绿色

试试下面的方法

            ((Excel.Range)worksheet.Cells[rowNumber, 7]).Value = message;
            Range cell = (Excel.Range)worksheet.Cells[rowNumber, 7];

            if (colorType.Equals("Green"))
            {
                cell.Characters[0, message.Length].Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Green);
            }
            else
            {
                cell.Characters[0, message.Length].Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);
            }

您正在使用哪个Excel库?您如何测试?什么是对象类型?它是自定义枚举吗?我会尽量简化你的条件,检查你的条件之外的一切。例如,我将创建一列数字,它们可以是1或2。然后将条件更改为…Font.Color=cell.Value==1:Color.Green:Color.Red(或类似效果的内容)。我正在使用Microsoft.Office.Interop.Excel库。是否要相同的
单元格或相同的
?我只是运行project以查看一些结果。Yes ExcelColorType是一个自定义枚举,只包含绿色和红色属性。我正在使用一些文本进行测试。例如,我将cell.value2+=“绿色触发”添加到if范围。当我这样做时,两个条件都会在条件发生时触发,但颜色保持为绿色,我希望它位于同一单元格中