Изменить цвет строк - PullRequest
       83

Изменить цвет строк

0 голосов
/ 05 августа 2020

У меня есть файл 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);

1 Ответ

1 голос
/ 05 августа 2020

Использовать условное форматирование.

  • Выберите заголовки столбцов B хотя O, чтобы выбрать все столбцы, или, если хотите, выберите B1:O3000 (PS a быстрый способ сделать это - щелкнуть поле имени слева от строки формул и ввести B1:O3000).

  • Выберите Conditional Formatting | New Rule... из группы стилей на главной странице. ленты.

  • Выберите Use a formula to determine which cells to format в поле Select a Rule Type.

  • В поле ввода Format values where this formula is true: введите =AND($B1<>"new",$B1<>"")

  • Выберите Format... и на вкладке Fill установите заливку, которую вы хотите использовать, и выберите OK.

  • Выбрать OK еще раз, чтобы закрыть диалоговое окно New Formatting Rule.

...