Excel cell background colour in POI

hi all,
i know this probably isnt the right place to post this but has anyone used the POI package to read Excel files?
Im trying to get the background colour of a cell
using
HSSFCellStyle bgCol=checkCell.getCellStyle();
String myCol=String.valueOf(bgCol.getFillBackgroundColor());but it doesnt return my colour index as it just returns 64 or 65
(it returns 64 if there is a colour background and 65 if there isnt a colour background, but always returns 64 regardless of the background colour)
any ideas why it does this and how i actually do get the unique identifyer of the colour.

this is my code
int maxRows=sheet.getPhysicalNumberOfRows();
for (int i=0;i<maxRows;i++)
     //check background colour
     HSSFRow checkRow = sheet.getRow(i);
     HSSFCell checkCell = checkRow.getCell((short)0);
     HSSFCellStyle bgCol=checkCell.getCellStyle();
     String myCol=String.valueOf(bgCol.getFillBackgroundColor());
     System.out.println(i+" "+myCol+ " : "+checkCell.getNumericCellValue()+" "+bgCol.getFillPattern());     
     }my first 3 rows in my sheet have 3 different colour backgrounds then the rest of 30 rows have no colour
the returned data looks like this
0 64 : 1.0 1
1 64 : 2.0 1
2 64 : 3.0 1
3 65 : 4.0 0
4 65 : 5.0 0
5 65 : 6.0 0
6 65 : 7.0 0
7 65 : 8.0 0
8 65 : 9.0 0
9 65 : 10.0 0
10 65 : 11.0 0
11 65 : 12.0 0
12 65 : 13.0 0
13 65 : 14.0 0
14 65 : 15.0 0
15 65 : 16.0 0
16 65 : 17.0 0
17 65 : 18.0 0
18 65 : 19.0 0
19 65 : 20.0 0
20 65 : 21.0 0
21 65 : 22.0 0
22 65 : 23.0 0
23 65 : 24.0 0
24 65 : 25.0 0
25 65 : 26.0 0
26 65 : 27.0 0
27 65 : 28.0 0
28 65 : 29.0 0
29 65 : 30.0 0
as you can see the getFillBackgroundColor() is not returning the right stuff

Similar Messages

  • Cell background colour

    hi,
      can anyone give me idea on changing cell background colour,
      i used,<b>setCellBackgroundColor(int row,int col,Color colorNew),</b>
    but it's not working.
    thanks,
    karthick.

    Hi Karthick,
    As I see here :  cell bg color, you've already asked this question before !
    Please keep in mind the following points before you post another question :
    1) NEVER EVER double post ! If your problem was not solved, please append in the existing thread.
    2) Assign points and close the thread if your question was answered. As I can see in the link above, you've not assigned points.
    If you are facing any problem in using this forum or have any questions, feel free to contact me !
    Regards
    Abesh

  • White border in cell when adding background colour.

    In Numbers for Mac. When I add a background color there is a white border inside the cell. How do I have the entire cell filled with the colour? I go through, the 'format'menu, 'text','layout', 'border' and 'background colour'.

    Use the Cell tab to apply a fill color to the cell instead of applying a background color to the text.

  • Jasper Export to excel: changing background color of the cell/field

    Hi all,
    I have designed a report containing a set of 5 different fields. All these are STRING values.
    Among these are two fields named: BUDGETED and ACTUAL.
    I want to show the data corresponding to ACTUAL in red color if the value of ACTUAL is greater than BUDGETED when exported in excel format.
    The value itself should be displayed in red color or the excel cell should have a color red
    Can someone please help me in this? How can we implement the logic to compare these two values?
    Thanks in advance.

    You are using Jasper and you thought: hey, let me post a question in the Oracle Reports forum?

  • Convert contents of a formatted excel cell to HTML format

    Hi All,
    Background: I am writing a script that uploads some test cases written in excel into Quality Center. For those who are familiar with the QC Excel Addin, this script would do a pretty similar job except for reducing
    the steps involved. I'm using Office 2007 running on Win 7 Pro.
    Need: I have a situation where the contents of a formatted excel cell need to be converted to HTML tags representing the same formattin in the excel cell. For example a cell containg the text: "Verify
    if help topics in Macro section are
    hyperlinked" should be converted to
    <html><b>Verify</b> if help topics in <u>Macro section</u> are <i>hyperlinked</i></html> 
    Question: Is there an inbuilt function in Excel/VBAn accomplish this? Or is a macro required? Any other ideas to accomplish this?
    Note: Whatever used for converting (an inbuilt function or a macro) should support new line characters and colors.
    Any help or redirection to solutions is appreciated.
    Thanks, John.
    --Thanks, John Jacob Tharakan

    Here is the function I wrote. This handles the conversion character by character.
    Function fnConvert2HTML(myCell As Range) As String
    Dim bldTagOn, itlTagOn, ulnTagOn, colTagOn As Boolean
    Dim i, chrCount As Integer
    Dim chrCol, chrLastCol, htmlTxt As String
    bldTagOn = False
    itlTagOn = False
    ulnTagOn = False
    colTagOn = False
    chrCol = "NONE"
    htmlTxt = "<html>"
    chrCount = myCell.Characters.Count
    For i = 1 To chrCount
    With myCell.Characters(i, 1)
    If (.Font.Color) Then
    chrCol = fnGetCol(.Font.Color)
    If Not colTagOn Then
    htmlTxt = htmlTxt & "<font color=#" & chrCol & ">"
    colTagOn = True
    Else
    If chrCol <> chrLastCol Then htmlTxt = htmlTxt & "</font><font color=#" & chrCol & ">"
    End If
    Else
    chrCol = "NONE"
    If colTagOn Then
    htmlTxt = htmlTxt & "</font>"
    colTagOn = False
    End If
    End If
    chrLastCol = chrCol
    If .Font.Bold = True Then
    If Not bldTagOn Then
    htmlTxt = htmlTxt & "<b>"
    bldTagOn = True
    End If
    Else
    If bldTagOn Then
    htmlTxt = htmlTxt & "</b>"
    bldTagOn = False
    End If
    End If
    If .Font.Italic = True Then
    If Not itlTagOn Then
    htmlTxt = htmlTxt & "<i>"
    itlTagOn = True
    End If
    Else
    If itlTagOn Then
    htmlTxt = htmlTxt & "</i>"
    itlTagOn = False
    End If
    End If
    If .Font.Underline > 0 Then
    If Not ulnTagOn Then
    htmlTxt = htmlTxt & "<u>"
    ulnTagOn = True
    End If
    Else
    If ulnTagOn Then
    htmlTxt = htmlTxt & "</u>"
    ulnTagOn = False
    End If
    End If
    If (Asc(.Text) = 10) Then
    htmlTxt = htmlTxt & "<br>"
    Else
    htmlTxt = htmlTxt & .Text
    End If
    End With
    Next
    If colTagOn Then
    htmlTxt = htmlTxt & "</font>"
    colTagOn = False
    End If
    If bldTagOn Then
    htmlTxt = htmlTxt & "</b>"
    bldTagOn = False
    End If
    If itlTagOn Then
    htmlTxt = htmlTxt & "</i>"
    itlTagOn = False
    End If
    If ulnTagOn Then
    htmlTxt = htmlTxt & "</u>"
    ulnTagOn = False
    End If
    htmlTxt = htmlTxt & "</html>"
    fnConvert2HTML = htmlTxt
    End Function
    Function fnGetCol(strCol As String) As String
    Dim rVal, gVal, bVal As String
    strCol = Right("000000" & Hex(strCol), 6)
    bVal = Left(strCol, 2)
    gVal = Mid(strCol, 3, 2)
    rVal = Right(strCol, 2)
    fnGetCol = rVal & gVal & bVal
    End Function
    --Thanks, John Jacob Tharakan

  • How to populate arrayList values in a Excel cell using java

    Hi ,
    Iam trying to create Excel sheet using java with Apache-POI api's.I need to display values from an arrayList into Excel cell as drop down.kindly suggest me any idea or share any code if u have any.
    Thanks in advance
    Regards
    Rajesh

    I suggest you use google to find examples.

  • Unable to set background colour JTableHeader in Java 1.6_18

    We're moving our application from Java 1.4.2 to 1.6_18, so far without major problems but there's some small issues with the GUI. Originally we'd change the background colour of the JTableHeader, but in 1.6_18 that doesn't seem to work. Instead of colouring the complete header it just seems to draw an outline. It kind of gives the impression that there's something on top of the table header which hides the coloured background.
    The code below shows what I'm trying to do, and gives different results when compiled in Java 1.4.2 and Java 1.6_18. It makes no difference whether I'm using the UIManager or setting the background directly on the JTableHeader.
    The application still works fine of course, but it bugs me that I can't work out what the problem is, so any suggestions would be greatly appreciated! I've already had a look at bug [6521138|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6521138], but it makes no difference whether a new JTableHeader is set, so I think it's different. Also, the workaround for bug [4776303|http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4776303] has no effect so I think that doesn't apply either.
        public static void main(String[] args) {
            try {
                UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                // Doesn't give the expected result in Java 1.6_18, the background remains white-ish with only a coloured border.
                // UIManager.put("TableHeader.background", Color.GREEN);
                // UIManager.put("TableHeader.foreground", Color.BLUE);
            } catch (Exception exception) {
                exception.printStackTrace();
            final JFrame frame = new JFrame();
            frame.getContentPane().add(createPanel());
            frame.getContentPane().setLayout(new FlowLayout());
            frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
            frame.pack();
            frame.setVisible(true);
        private static JPanel createPanel() {
            final JPanel panel = new JPanel();
            final DefaultTableModel model = new DefaultTableModel(3, 2);
            final JTable table = new JTable(model);
            // Tableheaders.
            final TableColumnModel columnModel = table.getColumnModel();
            columnModel.getColumn(0).setHeaderValue("First");
            columnModel.getColumn(1).setHeaderValue("Second");
            // Doesn't give the expected result in Java 1.6_18, the background remains white-ish with only a coloured border.
            table.getTableHeader().setBackground(Color.GREEN);
            table.getTableHeader().setForeground(Color.BLUE);
            final JScrollPane scrollPane = new JScrollPane(table);
            panel.add(scrollPane);
            scrollPane.setSize(400, 100);
            panel.setSize(500, 500);
            panel.setPreferredSize(panel.getSize());
            return panel;

    Hillster wrote:
    Ah yes, when I change that setting the background of the table header indeed gets the expected background colour. Unfortunately it also makes my desktop look hopelessly outdated :-( And I can't really expect my end-customers to change their settings just to run my little application. Still, I suppose this proves that the problem lies in the L&F?Seconded Jeanette's sentiment, this is definitely a feature, not a problem. You want system LaF, you get System LaF, with all the bells and whistles. If you're sure you don't want the system embellishments, you could consider using my [_default table header cell renderer_|http://tips4java.wordpress.com/2009/02/27/default-table-header-cell-renderer/].
    db

  • Excel cell border disappears when converting to PDF (continued)

    Continuing from http://www.adobeforums.com/webx/.59b4dd40 which was archived already.
    I too am getting the problem in which Excel cell borders are disappearing from cells with a background color. Lowering the resolution to 300 dpi does not help.
    The borders are definitely disappearing. Printing the worksheet from Excel 2003 prints the cell borders. Printing the worksheet from the resulting PDF does not. I created the PDF using the Create PDF macro that Acrobat 9 adds to Excel.
    Here's the really odd thing: it only affects two adjacent cells in the same (first) row of the worksheet. Other cells with the same background color in the same columns or the same row are not affected, nor are the cells in other rows or columns.
    Copying similar cells that don't have the problem, then re-converting doesn't help.

    I just tested inserting a blank row 1 in the spreadsheet, moving the problem cells to C2 and D2, but the borders still disappear from those cells.
    Restoring back to C1 and D1, I note that if I copy the cell formats to other worksheets, the problem cells lose their borders on all worksheets.
    I then tested what happened if I specified No Color for C1 and D1. The problem transferred to cells G1 and H1, which had then become the first adjacent cells with background color.
    Restoring the background color to C1 and D1 transferred the problem back to C1 and D1, and removed the problem from G1 and H1.
    Next, I gave cell A1 a background color of white. This removed the problem from cells C1 and D1, and gave it to A1.
    Finally, I turned accessibility tagging off and that made the problem go away. However, I need tagging as we must post accessible documents.
    So now I have a consistent way to describe the problem: cell borders disappear from the first set of contiguous cells with background colors if tagging is turned on. I'm going to file this as a bug.
    Charles "Chas" Belov
    SFMTA Webmaster
    http://www.sfmta.com/webmaster

  • Read excel cell from pdf

    Hello
    I would like to link a pdf file to an excel file so that I can set some anchor points in the pdf file that will allow the pdf to change the value of these anchor points whenever the cells' values in excel change.
    Is there any way or any software to do this?
    Thanks

    hi,
    well you are saying that your excel file contains the name of the file which is stored at somewhere in your root directory structure?..........if is it so then do you want to store the name of the file which is specified in the excel cell, to oracle database as BLOB or CLOB or you want to read the actual content available in the doc or excel file and then store it to oracle database? please verify........
    this is possible using poi.....visit the apache's website for more information on POI api and downloads.......
    thanks
    shishir

  • Chanage background colour of adjacent column in xMII 11.5

    Hi All,
    Is it possible to change background color of adjacent column based on values.
    e. g.
    col1     col2     col3     col4     col5     col6
    0     A     0     A     0     A
    1     B     1     B     1     B
    0     C     0     C     0     C
    1     D     1     D     1     D
    0     E     0     E     0     E
    is it possible to set background colour of col2 based on value of col1.
    col2 red if col1 value is 0 and col2 green if col1 value is 1
    Regards,
    Sachin
    Edited by: sachinjadhavar on Jul 20, 2011 1:10 PM
    Edited by: sachinjadhavar on Jul 20, 2011 1:11 PM

    Hi Sachin,
    I hope the columns are of iGrid. You can do it by writing iGrid methods.
    For all rows, get the cell value using:
    document.iGrid.getGridObject().getCellValue(ROWNUMBER,COLNUMBER)
    Write the logic of color and apply the color to specific column using
    document.iGrid.getGridObject().setCellBackgroundColor(ROWNUMBER,COLNUMBER,COLOR)
    Hope this solves your problem.
    Best Regards,
    Kedar

  • With Firefox running, Office 2007 generates a "Cannot Empty Clipboard" error message when pasting information between Excel cells -- the behavior goes away when I close Firefox. Is there a way to prevent this?

    I am running Windows XP, Office 2007, and Firefox 3.6.13.
    Whenever I have Firefox running in the background and I attempt to paste information between Excel cells a "Cannot Empty Clipboard" error is generated. I have attempted numerous other fixes for this: Excel and Office settings. But nothing seems to help. When I close Firefox, the errors are no longer generated.

    The Skype add-in was the culprit in my case. Disabling it fixed the problem. As soon as I enable it, the problem comes back.

  • Read Excel with macros using Java POI

    Hi,
    I'm very desperate... I have to do following things: read Excel file with macros. I can read xls without macros, but i haven't ideas what to do, so correctly read records with macros in xls.
    I use following method to listen for incoming records and handles them as required.
    public void processRecord(Record record)
    switch (record.getSid())
    // the BOFRecord can represent either the beginning of a sheet or the workbook
    case BOFRecord.sid:
    BOFRecord bof = (BOFRecord) record;
    if (bof.getType() == bof.TYPE_WORKBOOK)
    System.out.println("Encountered workbook");
    // assigned to the class level member
    } else if (bof.getType() == bof.TYPE_WORKSHEET)
    System.out.println("Encountered sheet reference");
    break;
    case BoundSheetRecord.sid:
    BoundSheetRecord bsr = (BoundSheetRecord) record;
    System.out.println("New sheet named: " + bsr.getSheetname());
    break;
    case RowRecord.sid:
    RowRecord rowrec = (RowRecord) record;
    System.out.println("Row found, first column at "
    + rowrec.getFirstCol() + " last column at " + rowrec.getLastCol());
    break;
    case NumberRecord.sid:
    NumberRecord numrec = (NumberRecord) record;
    System.out.println("Cell found with value " + numrec.getValue()
    + " at row " + numrec.getRow() + " and column " + numrec.getColumn());
    break;
    // SSTRecords store a array of unique strings used in Excel.
    case SSTRecord.sid:
    sstrec = (SSTRecord) record;
    for (int k = 0; k < sstrec.getNumUniqueStrings(); k++)
    System.out.println("String table value " + k + " = " + sstrec.getString(k));
    break;
    case LabelSSTRecord.sid:
    LabelSSTRecord lrec = (LabelSSTRecord) record;
    System.out.println("String cell found with value "
    + sstrec.getString(lrec.getSSTIndex()));
    break;
    case FormulaRecord.sid:
    FormulaRecord fre = (FormulaRecord) record;
    System.out.println("Formula: "+ fre.getValue());
    break;
    I don't know, how check, that incoming record is joined with macro and I don't know how handle it.
    Is there possible to create Excel file with macros using POI?
    Please help me...
    Margaret

    I want to read the contents of an MS Excel file from
    java, is it possible using JavaBeans-ActiveX bridge or
    by any other java technologies, if possible, how ?Bridge2Java from IBM Alphaworks will do the trick for you.
    You can get it from here:
    http://www.alphaworks.ibm.com/aw.nsf/techs/bridge2java
    Using it, you can do things like the following (taken and abbreviated from the samples provided with the package):
    import Excel.*;
    public class QuickExcel
        public static void main(java.lang.String[] args) {
            Application app;
            Workbooks wbs;
            Workbook wb;
            Worksheet sheet;
            Range rangeA1, rangeA2;
            try
                com.ibm.bridge2java.OleEnvironment.Initialize();
                app = new Application(); // Excel.Application !!! :-)
                app.set_Visible(true);
                wbs = app.get_Workbooks();
                wb = wbs.Add();
                sheet = new Worksheet(wb.get_ActiveSheet());
                rangeA1 = sheet.get_Range("A1");
                String out = new String("This is a test");
                rangeA1.set_Value(out);
                // Wait five seconds
                Thread.sleep(5000);
                // Close the workbook without saving
                wb.Close(new Boolean("false"));
                app.Quit();
            } catch (com.ibm.bridge2java.ComException e)
                System.out.println( "COM Exception:" );
                System.out.println( Long.toHexString((e.getHResult())) );
                System.out.println( e.getMessage() );
            } catch (Exception e)
                System.out.println("message: " + e.getMessage());
            } finally
                app = null;
                com.ibm.bridge2java.OleEnvironment.UnInitialize();
    }

  • Background colour expression brings up a surprising result

    0
    down vote
    favorite
    I have a report where I want a cell colour to change if a duplicate value appears. I have used this expression for Background Colour:
    IIF(Previous(Fields!CustomerSurname.Value) = Fields!CustomerSurname.Value, "Red", Fields!CustomerSurname.Value)
    This works fine but if the customer surname is 'Brown' or 'Grey' then the cell colour matches the colour of the surname, eg the surname 'Brown' creates a brown cell background, not red. This doesn't happen with other surnames, eg ones that are not the names
    of colours...
    Any tips / guidance on how to avoid this would be appreciated - thanks.

    IIF(Previous(Fields!CustomerSurname.Value) = Fields!CustomerSurname.Value, "Red", Nothing)
    Please Mark This As Answer if it solved your issue
    Please Vote This As Helpful if it helps to solve your issue
    Visakh
    My Wiki User Page
    My MSDN Page
    My Personal Blog
    My Facebook Page

  • Help needed with referencing single Excel cells and formatting resulting text

    In InDesign CS5 I am putting together a 20pp catalogue of about 200 products. The plan is to have the product information, SKU code, quantity etc fixed, but have the prices (there are two i.e. pack price and individual price) being linked to an Excel spreadsheet. This is so that the prices can be updated in the Excel file and the InDesign file will pull the new prices through. In case you are wondering why I don't pull the whole set of information through, this is because there are a lot of copywriting changes done to the information once it's in InDesign - it's only going to be the prices that will be updated.
    I am planning on having two single cell tables in their own text frame, duly formatted with cell style, table style and paragraph style for the two price variables. This I am then going to have to repeat 200 times making sure I link to the next row down in Excel. This is going to be a hideous task but I see know way of modifying the cell in InDesign to point it to the next row in Excel. That's my first problem.
    My second problem is this. In the Excel sheet, the prices are formatted as UK currency and are therefore like this...
    £2.00
    £0.40
    £1.43
    £9.99
    £0.99
    £0.09
    What I will require is once I import that data (and refresh the data via a newly saved Excel file) is that the prices end up like this...
    £2.00
    40p
    £1.43
    £9.99
    99p
    9p
    So if the value is lower than £1.00 it needs a trailing 'p' added  and the leading zero and '£' sign stripped off. If the value is lower than £0.10 it also needs the zero after the decimal point stripping off.
    Then formatting wise, the '£' sign needs to be superscripted and the same for the 'p'. This I am assuming could be done via GREP?
    In summary, can anyone help with the first task of referecing the Excel cells on a cell by cell basis, given that it is the same cell column each time, but the next row down, and also point me in the right direction of the price formattting issues.
    Any help will be gratefully received.

    I would do this:
    Create on line with the formatting.
    Export as InDesign tagged text (TXT)
    Read out these tags
    In Excel exists a function to connect text from several cells and predfined text, there connect the content from cells with the paragraph styling tags. Do it in a seperate sheet. (Better would be to use a database like Access, there you can link your Excel sheet).
    Export this sheet as txt file
    Place this sheet as tagged text (there is an option in one of the sialog boxes).
    In preferences  < file handling you can specify that Tablecalculation Sheets and text is not embedded but linked, turn it on.

  • Right way to change datagrid row, column, cells background colors in code-behind?

    Hi all,
    I have a winform program that I'm upgrading to wpf (I'm new to wpf). The wpf code for the function (SetdataGridBackgroundColors()) is below with the winform code commented out so I can fix it.  I have a datagrid with a Cornsilk background color alteranating
    with LightGreen depending on the content of datetime  cell. If the day portion of the datetime is different then the color changes from one to the other. I used a colorIndex variable because at the end of the month it could go from 31 to 1 and that would
    not work if I use the day directly.
    I tried this line to change the background color:
    optionsDataDatagrid.RowBackground = new SolidColorBrush(Colors.Cornsilk);
    this works but it changes every row. I found this other stuff:
    DataGridRow currentRowColor = optionsDataDatagrid.ItemContainerGenerator.ContainerFromIndex(i) as DataGridRow;
    //DataGridRow currentRowColor = optionsDataDatagrid.ItemContainerGenerator.ContainerFromItem(optionsDataDatagrid.Items[i]) as DataGridRow;
    currentRowColor.Background = new SolidColorBrush(Colors.Cornsilk);
    Either ContainerFromIndex or ContainerFromItem throw an exception because currentRowColor is null. I looked at optionsDataDatagrid.Items[i] and is not null. Then I read that using ItemContainerGenerator is not a good idea.
    BTW I'm calling SetdataGridBackgroundColors() after datagrid is been filled with data.
    So... what is the proper way to set each row, column or cell background color in wpf?
    Thanks
    private void SetdataGridBackgroundColors()
    optionRowData rowData = new optionRowData();
    if (optionsDataDatagrid.Items.Count == 0)
    return;
    int colorIndex = 1;
    DateTime savedDate, currentRowDate;
    rowData = optionsDataDatagrid.Items[0] as optionRowData;
    savedDate = rowData.col_datetime.Date; //only compare the date not the time
    for (int i = 0; i < optionsDataDatagrid.Items.Count; i++)
    //currentRowDate = Convert.ToDateTime(optionsDataDatagrid.Rows[i].Cells[3].Value); //winform code
    //currentRowDate = currentRowDate.Date; //winform code
    rowData = optionsDataDatagrid.Items[i] as optionRowData;
    currentRowDate = rowData.col_datetime.Date;
    if (currentRowDate != savedDate)
    colorIndex++;
    savedDate = currentRowDate;
    if (colorIndex % 2 == 0)
    //optionsDataDatagrid.Rows[i].DefaultCellStyle.BackColor = Color.Cornsilk;
    //------------------- testing new code --------------begin
    optionsDataDatagrid.RowBackground = new SolidColorBrush(Colors.Cornsilk); //this changes all rows
    //DataGridRow currentRowColor = optionsDataDatagrid.ItemContainerGenerator.ContainerFromIndex(i) as DataGridRow;
    //DataGridRow currentRowColor = optionsDataDatagrid.ItemContainerGenerator.ContainerFromItem(optionsDataDatagrid.Items[i]) as DataGridRow;
    //currentRowColor.Background = new SolidColorBrush(Colors.Cornsilk);
    //------------------- testing new code --------------end
    //optionsDataDatagrid.Columns[4].DefaultCellStyle.BackColor = Color.DarkSalmon;
    //optionsDataDatagrid.Columns[5].DefaultCellStyle.BackColor = Color.Aquamarine;
    //optionsDataDatagrid.Rows[i].Cells[4].Style.ApplyStyle(optionsDataDataGridView.Columns[4].DefaultCellStyle);
    //optionsDataDatagrid.Rows[i].Cells[5].Style.ApplyStyle(optionsDataDataGridView.Columns[5].DefaultCellStyle);
    else
    //optionsDataDatagrid.Rows[i].DefaultCellStyle.BackColor = Color.LightGreen;
    //------------------- testing new code --------------begin
    optionsDataDatagrid.RowBackground = new SolidColorBrush(Colors.LightGreen); //this has no effect
    //------------------- testing new code --------------end
    //optionsDataDatagrid.Columns[4].DefaultCellStyle.BackColor = Color.Coral;
    //optionsDataDatagrid.Columns[5].DefaultCellStyle.BackColor = Color.LimeGreen;
    //optionsDataDatagrid.Rows[i].Cells[4].Style.ApplyStyle(optionsDataDataGridView.Columns[4].DefaultCellStyle);
    //optionsDataDatagrid.Rows[i].Cells[5].Style.ApplyStyle(optionsDataDataGridView.Columns[5].DefaultCellStyle);

    I (also) strongly recommend mvvm.
    Setting values is a particularly bad idea in this case.
    I don't mean to be rude but your explanation of the requirement is kind of vague.
    I would bind solidcolourbrushes.
    Set the properties based on whatever your logic is within the viewmodel.
    You can switch out what each of the brushes holds when the user clicks wherever.
    So you use a highlightbrush when something or other is true.
    That highlightbrush is set to a blue brush when the user clicks left and a red brush when they click right.
    Please don't forget to upvote posts which you like and mark those which answer your question.
    My latest Technet article - Dynamic XAML

Maybe you are looking for