我正在使用 R 对 .xlsx 文档中的单元格进行条件着色。 R 代码运行顺利,没有错误,并可以正常创建我的 .xlsx 文档。但是,当我用 Excel 打开 .xlsx 文件时,Excel 指出:
“我们发现 {file name} 中的某些内容存在问题,您希望我们尽力恢复吗?”。
我选择“是”,文件将打开,不包含阴影,并出现一个窗口,显示:
“删除了功能:/xl/worksheets/sheet7.xml 部分的条件格式”。
我的 R 代码似乎正在运行并应用条件格式,但随后 Excel 由于某种原因将其删除。
这是我的 R 代码:
data_output_root = paste0(project_root, "/Output/2022/NI Table 3 SOC2/")
data_template_root = paste0(project_root, "/Template/2022/NI Table 3 SOC2/")
new_workbook <- loadWorkbook(paste0(data_template_root, "Occupation SOC20 (2) Table 3 (NI).1 Weekly pay - Gross 2022.xlsx"))
# Read in xls file that data will come from
data_from_xlsCV <- read_xls(paste0(data_input_root, "Work Region Occupation SOC20 (2) NI Table 3 (NI).1b Weekly pay - Gross 2022 CV.xls"), sheet = "Male")
selected_data <- data_from_xlsCV[6:41, 2:17]
selected_data <- sapply(selected_data, as.numeric)
selected_data <-format(selected_data, nsmall= 1)
# Write selected data into selected workbook
writeData(new_workbook, sheet = "Table3.1b Male CV",
x = selected_data,
startRow = 10, startCol = 2,
colNames = FALSE)
# Create and apply formatting
cvFive <- createStyle(bgFill = "#5bc0de",
numFmt = "#,###.#",
halign = "right",
fontSize = 12)
cvTen <- createStyle(bgFill = "#428bca",
numFmt = "#,###.#",
halign = "right",
fontSize = 12)
conditionalFormatting(new_workbook, sheet = "Table3.1b Male CV",
rows = 10:45, cols = 3:17,
rule = "between", operator = c(5,9),
style = cvFive)
conditionalFormatting(new_workbook, sheet = "Table3.1b Male CV",
rows = 10:45, cols = 3:17,
rule = "between", operator = c(10,20),
style = cvTen)
# Save new workbook to Output folder
saveWorkbook(new_workbook, paste0(data_output_root,"Occupation SOC20 (2) Table 3 (NI).1 Weekly pay - Gross 2022.xlsx"), overwrite = TRUE)
我正在使用 Microsoft 365 应用中的 Excel 版本 2306。
我不知道要尝试什么来解决这个问题。
看起来您在这里使用的是 openXLSX(为了将来的参考,包含您正在使用的软件包会很有帮助)。如果您查看 openXLSX 的手册,您可以在第 16 页上找到许多如何使用条件格式功能的示例。没有运算符参数,而是您需要类似这样的内容:
conditionalFormatting(new_workbook, sheet = "Table3.1b Male CV",
rows = 10:45, cols = 3:17,
type = "between",
rule = c(5,9),
style = cvFive)
值得注意的是,仅仅因为 R 运行代码没有错误,并不意味着它可以正常工作,尤其是在 OpenXLSX 中,在打开文件之前某些操作不会发生 - 这可能就是您发现很难解决此问题的原因。