2016-04-07 4 views
3

Microsoft.Office.Interop.Excel kütüphanesini kullanıyorum.MS Excel'in bir hücresindeki metnin rengini nasıl değiştirebilirim?

"Yeşil Kırmızı" değerlerine sahip bir hücrem var. İstediğim şey oldukça basit. Ben böyle kırmızı olmak yeşil ve "Kırmızı" olarak "Yeşil" metin eklemek istiyorum:

enter image description here

Ben hücrede verilerini eklemek için bu kodu kullanıyorum:

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"; 
} 

nasıl yapmak için?

Ben tried this approach ettik ama [RangeObject] olduğunu bilmiyorum:

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

+0

size yardımcı http://stackoverflow.com/questions/5667842/multiple-formats-in-one-cell-using-c-sharp mu - hangi yolu C# 'dan Excel entegrasyonu kullanıyor musunuz? – weismat

+0

@weismat ooops, Sorunuzu anlayamıyorum. 'Microsoft.Office.Interop.Excel' kütüphanesini kullanıyorum. – StepUp

+0

Bak: [http://stackoverflow.com/questions/2452417/cell-color-changing-in-excel-using-c-sharp](http://stackoverflow.com/questions/2452417/cell-color -en-excel-kullanarak-c-keskin) –

cevap

9

Dene: start_pos ve len nereye rengi uygulamak için dizenin parçası olan

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

.

kullanımınız vaka örneği:

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

'Range' nedir? Range 'sınıfı almak için kütüphane kullanmalı mıyım? – StepUp

+1

A Range "Bir hücreyi, bir satırı, bir sütunu, bir veya daha fazla bitişik hücre bloğu veya 3-D aralığı içeren hücrelerin seçimini temsil eder". Microsoft.Office.Interop.Excel ad alanında bulabilirsiniz. –