R可以识别Excel文件是否有注释单元格?

时间:2018-03-14 20:30:16

标签: r excel

我有一张excel表 .xlsx ,里面有一些评论的单元格。在R中导入后,R是否可以通过哪种方式识别评论的单元格?

因为我必须只对注释的单元格使用if else条件。

1 个答案:

答案 0 :(得分:6)

我们说我们有这个文件test.xlsxenter image description here

使用 openxlsx ,我们可以将工作簿读作数据框对象,只提取数据:

library(openxlsx)

# read the data
df1 <- read.xlsx("test.xlsx")
df1
#    1  no
# 1  2 yes
# 2  3  no
# 3  5  no
# 4 10 yes

如果我们需要提取注释,我们需要读作工作簿对象:

# read as workbook object
wb <- loadWorkbook("test.xlsx")

检查对象的结构以查看单元格引用的存储位置:

str(wb$comments)
# List of 3
# $ :List of 2
# ..$ :List of 5
# .. ..$ ref       : chr "B2"
# ...
# ... etc

然后使用注释子集,遍历工作表和子集单元格引用:

lapply(wb$comments, function(sheet)
  sapply(sheet, "[[", "ref"))
# [[1]]
# [1] "B2" "B5"
# 
# [[2]]
# list()
# 
# [[3]]
# list()

这意味着有3张纸,第1张纸在B2和B5有2条评论,其他2张是空白的。