问题描述
我想使用R包'openxlsx'对.xlsx文件进行条件格式设置,但如果值不包含特定文本字符串,则无法弄清楚如何格式化单元格。 在下面的示例中(该示例非常有效),我正在格式化包含字符串“ OK”的单元格(但我的目标是格式化其他所有内容):
library(openxlsx)
style <- createStyle(fontColour = '#9C0006',bgFill = '#FFC7CE')
wb <- openxlsx::loadWorkbook('myFile.xlsx')
openxlsx::conditionalFormatting(wb,'Sheet1',cols = 3:7,rows=1:100,type = 'contains',rule= 'OK',style = style)
openxlsx::saveWorkbook(wb,'myFile.xlsx')
在查看openxlsx的文档时,我看到规则参数中允许使用运算符,因此我尝试了以下操作:
openxlsx::conditionalFormatting(wb,rule= '!=OK',style = style)
这仍然不起作用,因为似乎只有将type设置为“ expression”时,运算符才可用。
在我看来,我可能会缺少一些很小而又简单的东西,但是我没有运气想出那是什么,所以希望有人有一个主意(或者可以告诉我,这是不可能的)按照我打算的方式做
解决方法
新开发版本已实现了列出的功能。我希望这个对你有用。为conditionalFormatting
添加的功能还支持“不包含”,“开头为”和“结尾为”
由于r2evans如此友好地向我解释说,我正在寻找的功能不可用,因此我创建了一种解决方法。它可能并不漂亮,但它做了我尝试做的简单工作。 我要做的是按照我希望格式化不包含“ OK”的单元格的格式来格式化整个工作簿,然后对所有包含“ OK”的单元格进行“未格式化”(格式化为标准格式)。