libxlsxwriter multiple formats on a cell - libxlsxwriter

First time poster, long time reader!
I am using libxlsxwriter in C.
I want to color rows either green or red and give the columns a different format each (which is either a date, a 2 decimal number or a 7 decimal number, or default.
the problem is that only the later is applied to each sell. so if do:
worksheet_set_column(bla, bla, bla, date_format)
//later in a loop:
worksheet_set_row(bla, bla, bla, green_format).
the cells will only have the green_format but the the date_format
is there a way to apply both?
I have a very messy solution where i just make red and green variation of each format, i.e. date_green_format/date_red_format. but that is really messy and i would like to avoid it aat all cost.
Is there a better way?
Thanks!

First use worksheet_set_row() and then use worksheet_set_column().
As per the documentation,
The format parameter will be applied to any cells in the row that don't have a format. As with Excel the row format is overridden by an explicit cell format.
Refer: worksheet_set_row()

is there a way to apply both? I have a very messy solution where i just make red and green variation of each format, i.e. date_green_format/date_red_format. but that is really messy and i would like to avoid it aat all cost.
Unfortunately that is the only possible solution. In Excel a cell that is at the intersection of a row and column format has a separate cell format that is a combination of both. As such, with libxlsxwriter you will also need to create and add a cell format that is a combination of the row and column formats.

Related

I'm looking for a Google Sheet array function to add specific increments in each row

Here's how it looks.
Hi. I'll try to be as specific as possible about this :)
I'm making a Google Sheet page similarly to a game character progression, that will automatically fill up based on data from other sheets: specifically, these "EXP" bars fill up with values based on the hidden cell A5.
For instance, the cells from D5 to BA5 represent LV1.
As the function shows, every time the value in A5 reaches an even number (for LV1, it's all even numbers from 2 to 100), one of the slots will fill up with a number, that with conditional formatting, will change the color of the cell and make it look like an actual exp bar filling up.
I'm using the function =COUNTIF(A5,">=2") and manually changing it to ">=4", ">=6" etc until ">=100" for the first bar. The second bar will have its 50 cells with all even numbers from ">=102" to ">=200".
So, to get to the question: is there an array formula that facilitates the process of filling a great amount of these bars with functions, without changing them all manually? Even automating *some *of this process would be great. Besides it being tedious, it leaves a lot of room for human error.
Thank you in advance to whoever's got an answer.
P
I haven't tried much as at the moment I am very confused by the vast amount of options array formulas provide. I have 48h of experience in the matter.
I suggest you to use the values of columns and rows here as helpers to do calculations. If you know that every column adds 2 and every row adds 100 you can set a formula like this for the whole range (select the whole range and add just one rule of conditional formatting):
=$A$5>((Column(D5)-3)*2+(Row(D5)-5)*100))
You use $symbol to make A5 steady and D5 value will "move" to each cell for conditional formatting, so you don't have to make an ARRAYFORMULA for this

Is there no way of including font color when returning data using IMPORTRANGE or VLOOKUP?

I know these functions don't normally work this way, but this is the only option I can think of with what I need to accomplish. Just please if anyone knows of a way that importrange can also display even just the font color from the source sheet (cell fill doesn't matter), that would be very helpful.
unfortunately no. IMPORTRANGE is not capable to carry on the formatting. but you can copy-paste it by clicking on the red circle and:
Google Sheets considers formulas and raw data to simply be values inside the cells, and it considers formatting to be visual prettiness for people. So, there's no formula which can affect a format, nor is there a format which can affect a cell's formula/data.
However, you can use Conditional Formatting to automatically format a wide range of cells in various ways. If your goal is to have this spreadsheet apply format to itself automatically based on its cells' values, this is probably what you want.
As a plus, the "Paste format" button works with Conditional Formatting too!

Comparing each value in a column to the value in the column next to it

I'm creating an expenses spreadsheet, and I want to be able to compare what each person has paid on each item, to what is owed. If it's < what's owed, it will be red, if =>, green. I know I can manually conditionally format each cell to do this, but I'm looking for a solution I can use to simplify the sheet for month-to-month editing, with potential to add new expenses or remove them without having to later manually conditionally format the new expense.
I've looked into a few others with similar questions and tried some custom formats. First I went with the simple "if less than column [whichever it is next to] set color to red" and no luck, and one suggested a formula like this: =($H2>=$G2)*($H2<>"") though honestly I can't say I fully understand it. I have a grasp on it to a certain extent due to my coding background, but not quite enough. I feel this would be way easier if I was coding and could just use a for each statement...
I expected the cells (specifically for the greater than function) to be green, but actually it's counting all cells as less than the ones next to them, regardless of the values.
Imgur images
your issue is that the conditional formatting is offset by 1 row because you trying to apply it on range H1:H13 but formulas you use works with range H2:H & G2:G. therefore do it like this where you start from H2:

Conditional Formatting cells in column up to and including the last one with text entered

I am using Google Sheets and trying to write a custom formatting rule that seems like it should be simple. I am trying to figure out how to conditionally format all the cells in a column INCLUDING AND ABOVE (but not below) the cell that meets my condition.
I've found a lot of things that will format the entire column, but that's not what I'm looking for.
The image below is a basic example that I manually colored in to do what I want.
It's for my budget spreadsheet, where each row is an entry from a particular date. I have an "Agreement" column that is empty except when I enter the date that I reconciled the budget. I want it to color that cell and all the empty cells above it green, signifying at a glance: "everything up to this point is ok/has been checked over". Then as time goes by, and I enter another date several rows below, I want it to extend the colored shading up to there.
I've been searching, but it is hard to articulate this; if I say "until this cell" I get results for "shade cell until text is entered"; any mention of "above" and "below" generally relates to the values in the cells; I've found some things about Indirect but just for a single cell above, not for all cells above the current cell.
Wondering if this is even possible...
Google Sheets example
If you create a conditional formatting rule for column A using a Custom Formula you can use this formula:
=COUNTIF(ROW(),"<="&LARGE(ArrayFormula(IF(ISBLANK(A1:A100),"TRUE",ROW(A1:A100))),1))
The larger the ranges you use, the slower it will be however.

How to conditionally format highest value of multiple ranges

I'm trying to use conditional formatting to highlight the maximum value over multiple ranges. That is, find the one highest value in said ranges and highlight all instances of it. I have been able to use conditional formatting to highlight the highest number of one column, but not over multiple.
The ranges in question are: G3:G13,J3:J13,M3:M13,P3:P13,S3:S13,V3:V13
Screenshot of the spreadsheet
The versions I have tried either highlight every value in the first row, multiple values but not the highest one, or nothing at all.
An alternative is to use a MAX function and place that value in another cell (the little 4 in the bottom right corner) and use conditional formatting based on that value. However, it's not a particularly elegant solution nor have I been able to make that work properly.
I am using New Google Sheets and am familiar with custom formatting and custom formulas for doing so.
You need to use Conditional Formatting Custom Formula.
Set Apply to Range
G3:G13,J3:J13,M3:M13,P3:P13,S3:S13,V3:V13
Enter in Custom Formula is
=G3=(max($G$3:$G$13,$J$3:$J$13,$M$3:$M$13,$P$3:$P$13,$S$3:$S$13,$V$3:$V$13))
Pick your formatting style.
You may have to scroll down the Format cells if menu to find Custom Formula.

Resources