2016-04-07 13 views
3

Ich verwende Microsoft.Office.Interop.Excel Bibliothek.Wie kann ich die Farbe von Text in einer Zelle von MS Excel ändern?

Ich habe eine Zelle mit Werten "Green Red". Was ich will, ist ziemlich einfach. Ich will "Green" text, grün zu sein und "Red", rot sein, wie das einzufügen:

enter image description here

Ich verwende diesen Code Daten in Zelle einzufügen:

Excel.Application excelApp = new Excel.Application(); 
excelApp.Workbooks.Add(); 
// single worksheet 
Excel._Worksheet workSheet = excelApp.ActiveSheet; 

for (int startIndex = 0; startIndex < 10; startIndex++) 
{ 
    workSheet.Cells[1, (startIndex + 1)] ="Green" + " Red"; 
} 

Wie es zu tun?

Ich habe tried this approach, aber ich weiß nicht, was [RangeObject] ist:

[RangeObject].Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red);

+0

Hat Sie http://stackoverflow.com/questions/5667842/multiple-formats-in-one-cell-using-c-sharp helfen - die Art und Weise der Excel-Integration von C# verwenden Sie? – weismat

+0

@weismat ooops, ich kann Ihre Frage nicht verstehen. Ich verwende 'Microsoft.Office.Interop.Excel' Bibliothek. – StepUp

+0

Betrachten Sie: [http://stackoverflow.com/questions/2452417/cell-color-changing-in-excel-using-c-sharp](http://stackoverflow.com/questions/2452417/cell-color -changing-in-excel-using-c-sharp) –

Antwort

9

Versuchen:

workSheet.Cells[1, (i + 1)].Characters[start_pos, len].Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red); 

wo start_pos und len ist der Teil der Zeichenkette, in der Farbe anzuwenden .

Ihr Anwendungsfallbeispiel:

Application excelApp = new Application(); 
    excelApp.Workbooks.Add(); 
    // single worksheet 
    _Worksheet workSheet = excelApp.ActiveSheet; 

    string Green = "Green"; 
    string Red = "Red"; 
    for (int start = 0; start < 10; start++) 
    { 
     Range ColorMeMine = workSheet.Cells[1, (start + 1)]; 
     ColorMeMine.Value = string.Format("{0} {1}", Green, Red); 
     ColorMeMine.Characters[0, Green.Length].Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Green); 
     ColorMeMine.Characters[Green.Length + 1, Green.Length + 1 + Red.Length].Font.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.Red); 
    } 
+0

Was ist 'Reichweite'? Was ist eine Bibliothek sollte ich verwenden, um 'Range' Klasse zu bekommen? – StepUp

+1

Ein Bereich "Repräsentiert eine Zelle, eine Zeile, eine Spalte, eine Auswahl von Zellen, die einen oder mehrere zusammenhängende Blöcke von Zellen enthalten, oder einen 3D-Bereich". Sie finden es im Microsoft.Office.Interop.Excel-Namespace. –

Verwandte Themen