У меня есть файл Excel, и мне нужно проверить столбец B для определенного диапазона (например, диапазон: 1: 3000), и если присутствует значение, отличное от «новой» и пустой ячейки, поэтому мне нужно изменить строку цвет серым цветом от столбца B до O. Вот так: введите описание изображения здесь
Как это сделать в C#? Если необходимо, я предпочитаю Microsoft.Interop.Excel другим ... Я уже проверял похожие ответы, и, наконец, я попробовал что-то вроде этого, но ничего не происходит ... какое самое простое решение?
using Excel=Microsoft.Office.Interop.Excel;
using System;
using Microsoft.Office.Interop.Excel;
namespace RowsColorChange
{
class Program
{
static void Main(string[] args)
{
Excel.Application xlApp;
Excel.Workbook xlWorkBook;
Excel.Worksheet xlWorkSheet;
object misValue = System.Reflection.Missing.Value;
xlApp = new Excel.Application();
xlWorkBook = xlApp.Workbooks.Open("C:\\Users\\Something\\Ge\\Output\\2020-06 1 - MR - Pronto - Copia.xlsm", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
FormatCondition format = (FormatCondition)(xlWorkSheet.get_Range("B3:B2000",
Type.Missing).FormatConditions.Add(XlFormatConditionType.xlExpression, XlFormatConditionOperator.xlEqual,
"=$B3<>null","=$B3<>"+"new", Type.Missing, Type.Missing, Type.Missing, Type.Missing));
format.Font.Bold = true;
format.Font.Color = 0x000000FF;
xlWorkBook.Close(true, misValue, misValue);
xlApp.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkSheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkBook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp);