title: Change font color of text in CellValue in Excel - OpenXml
body: <p>How can I change the text color of CellValue in excel? I am able to change foreground color of a cell but it changes color of all text present inside the cell, which I don't want. I want to highlight only particular text inside the cell i.e CellValue text.</p>
  
  <p>I am using below code to highlight cell text, how it can be done for CellValue?</p>
  
  <pre><code>foreach (DocumentFormat.OpenXml.Spreadsheet.Cell currentCell in allCells)
  {    
  Fill fill = new Fill()
      {
           PatternFill = new PatternFill
           {
               PatternType = PatternValues.Solid,
               ForegroundColor = new ForegroundColor() { Rgb = "FFFF00" }
            }
      };
      styleSheet.Fills.AppendChild(fill);
  
     //Adding the  CellFormat which uses the Fill element 
      CellFormats cellFormats = styleSheet.CellFormats;
      CellFormat cf = new CellFormat();
      cf.FillId = styleSheet.Fills.Count;
      cellFormats.AppendChild(cf);
      currentCell.StyleIndex = styleSheet.CellFormats.Count;
  }
  </code></pre>
  
  <p>I dont see any property of Style in CellValue</p>
  
  <pre><code>CellValue currentCellValue = currentCell.GetFirstChild&lt;CellValue&gt;();
  if (currentCell.DataType == CellValues.SharedString) // cell has a cell value that is a string, thus, stored else where
      {
               data = doc.WorkbookPart.GetPartsOfType&lt;SharedStringTablePart&gt;().FirstOrDefault().SharedStringTable.ElementAt(int.Parse(currentCellValue.Text)).InnerText;
      }
  </code></pre>
  
  <p>Generated code from OpenXML Tool - </p>
  
  <pre><code>SharedStringTable sharedStringTable1 = new SharedStringTable(){ Count = (UInt32Value)1U, UniqueCount = (UInt32Value)1U };
  
              SharedStringItem sharedStringItem1 = new SharedStringItem();
  
              Run run1 = new Run();
  
              RunProperties runProperties1 = new RunProperties();
              FontSize fontSize3 = new FontSize(){ Val = 11D };
              Color color3 = new Color(){ Rgb = "FFFF0000" };
              RunFont runFont1 = new RunFont(){ Val = "Calibri" };
              FontFamily fontFamily1 = new FontFamily(){ Val = 2 };
              FontScheme fontScheme4 = new FontScheme(){ Val = FontSchemeValues.Minor };
  
              runProperties1.Append(fontSize3);
              runProperties1.Append(color3);
              runProperties1.Append(runFont1);
              runProperties1.Append(fontFamily1);
              runProperties1.Append(fontScheme4);
              Text text1 = new Text();
              text1.Text = "Microsoft";
  
              run1.Append(runProperties1);
              run1.Append(text1);
  
              Run run2 = new Run();
  
              RunProperties runProperties2 = new RunProperties();
              FontSize fontSize4 = new FontSize(){ Val = 11D };
              Color color4 = new Color(){ Theme = (UInt32Value)1U };
              RunFont runFont2 = new RunFont(){ Val = "Calibri" };
              FontFamily fontFamily2 = new FontFamily(){ Val = 2 };
              FontScheme fontScheme5 = new FontScheme(){ Val = FontSchemeValues.Minor };
  
              runProperties2.Append(fontSize4);
              runProperties2.Append(color4);
              runProperties2.Append(runFont2);
              runProperties2.Append(fontFamily2);
              runProperties2.Append(fontScheme5);
              Text text2 = new Text(){ Space = SpaceProcessingModeValues.Preserve };
              text2.Text = " is great";
  
              run2.Append(runProperties2);
              run2.Append(text2);
  
              sharedStringItem1.Append(run1);
              sharedStringItem1.Append(run2);
  
              sharedStringTable1.Append(sharedStringItem1);
  
              sharedStringTablePart1.SharedStringTable = sharedStringTable1;
  </code></pre>