как мы можем выделить конкретные буквы и сохранить их в формате xls - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть такие данные

df<-structure(list(X = structure(3:1, .Label = c("CQLSKGQSYSVNVTFTSNIQSKSSKAVVHGILMGVP", 
"KLALQLHPDRNPDDPQAQEKFQDLGAAYEVLSDSEKRKQYD", "MVEAIVEFDYQAQHDDELTISVGEIITNIRKEDGGWW"
), class = "factor")), class = "data.frame", row.names = c(NA, 
-3L))

Я пытаюсь выделить букву D в каждой строке, а затем сохранить ее в формате xlsx.Я попытался использовать это Excel Cell Coloring, используя xlsx

library(xlsx)
# To export the data
sheetname <- "mysheet"
write.xlsx(d, "mydata.xlsx", sheetName=sheetname)
file <- "mydata.xlsx"
# I want to color special letters in one cell
wb <- loadWorkbook(file)              # load workbook
fo1 <- Fill(foregroundColor="blue")   # create fill object # 1
cs1 <- CellStyle(wb, fill=fo1)        # create cell style # 1
sheets <- getSheets(wb)               # get all sheets
sheet <- sheets[[sheetname]]          # get specific sheet
rows <- getRows(sheet, rowIndex=2:(nrow(df)+1))     # get rows
# 1st row is headers
cells <- getCells(rows, colIndex = 2:cols)         # get cells
values <- lapply(cells, getCellValue) # extract the cell values

Затем мы находим букву, которую нужно выделить

# find cells meeting conditional criteria D
highlightblue <- NULL
for (i in names(values)) {
  x <- as.character(values[i])
  if (x == D && !is.na(x)) {
    highlightblue <- c(highlightblue, i)
  }    
}

применить форматирование и сохранитьРабочая тетрадь.

lapply(names(cells[highlightblue]),
       function(ii) setCellStyle(cells[[ii]], cs1))
saveWorkbook(wb, file)

Однако я не могу понять, как раскрасить букву внутри ячейки.

...