读取Excel单元格注释/注释并写入r数据框列

读取Excel单元格注释/注释并写入r数据框列,r,excel,R,Excel,问题:我需要在excel工作簿中读取数据单元格的注释/注释,将其作为R中自己的数据列 我已经找到了使用Tidyxl包的方法,但在加载数据时无法使脚本正常工作 我已经启动了一个GitHub线程来引用输入数据、Rscript,希望最终产品是这样的: 我认为任何现有的r软件包都无法解决这一问题,您最好采用VBA解决方案,如以下解决方案,将注释放入单元格: Sub-CommentToCell() '循环浏览activesheet中的所有注释 对于ActiveSheet.Comments中的每个cmt

问题:我需要在excel工作簿中读取数据单元格的注释/注释,将其作为R中自己的数据列

我已经找到了使用Tidyxl包的方法,但在加载数据时无法使脚本正常工作

我已经启动了一个GitHub线程来引用输入数据、Rscript,希望最终产品是这样的:


我认为任何现有的r软件包都无法解决这一问题,您最好采用
VBA
解决方案,如以下解决方案,将注释放入单元格:

Sub-CommentToCell()
'循环浏览activesheet中的所有注释
对于ActiveSheet.Comments中的每个cmt
'将注释文本打印到单元格中
cmt.Parent=cmt.Text
下一个cmt
端接头
我认为
Tidyxl
软件包具有导入注释的功能,它记录在:

库(tidyxl)

path的
xlsx
包也支持这一点

library(xlsx)
library(tidyverse)

wb <- xlsx::loadWorkbook(file = 'test_data_30oct2020 (1).xlsx')

sheets <- getSheets(wb)
sheet <- sheets[[1]]
rows <- getRows(sheet)
cells <- getCells(rows)


comments <- lapply(cells, getCellComment)


read_comments <- comments %>% 
  purrr::discard(is.null)

resp <- vector('list')

for (i in seq_along(read_comments)) {
  
  resp[[i]] <- read_comments[[i]]$getString()
  
}

resp
库(xlsx)
图书馆(tidyverse)

wb包含注释的单元格是否包含任何其他
数据
。i、 e您想用注释替换单元格内容吗?带有注释的单元格中包含相关信息,因此我需要单元格内容和单元格注释。这是我的担心,我感谢您的快速响应!您是否在同一列中有注释,即您有一列有注释,这是可能的。牛定期称重,因此称重日期作为单独的列输入excel,一张excel表格(5月1日,6月1日),一年一张工作簿。Steer ID也是一个单独的列,因此如果在6月1日称重样品Steer 1,5,9有需要记录的问题。他们在包含其重量记录的单元格中将该信息记录为注释/列。您似乎创建了一个单独的带有文件的分支。当我运行脚本时,收到以下错误:错误:“xlsx”的包或命名空间加载失败:。对于“rJava”,loadNamespace()中的onLoad失败,详细信息:call:fun(libname,pkgname)错误:软件/JavaSoft注册表中没有CurrentVersion条目!请尝试重新安装Java,并确保R和Java具有匹配的体系结构。@melCGS您需要安装Java,然后安装rJava软件包。不幸的是,我工作的人不允许员工下载新的/更新的软件……在IT人员回来工作之前,此回答线程必须处于待机状态。谢谢是的,根据您的设置,让R和java玩得好可能会很棘手。
# A tibble: 16 x 21
   comment Past  Section Treatment    ID `Tag Color` Owner notes
   <chr>   <chr> <chr>   <chr>     <dbl> <chr>       <chr> <lgl>
 1  NA     15E   E       moderate      7 Black       John  NA   
 2  NA     15E   E       moderate      9 Black       John  NA   
 3  NA     15E   E       moderate     10 Black       John  NA   
 4 "Johns… 15E   E       moderate     20 Black       John  NA   
 5 "Johns… 15E   E       moderate     20 Black       John  NA   
 6 "Johns… 15E   E       moderate     20 Black       John  NA   
 7  NA     23E   E       heavy        33 Black       Bob   NA   
 8 "Johns… 23E   E       heavy        36 Black       Bob   NA   
 9 "Johns… 23E   E       heavy        36 Black       Bob   NA   
10  NA     23E   E       heavy        39 Black       Bob   NA   
11  NA     23E   E       heavy        49 Black       Bob   NA   
12 "Johns… 23W   W       light        57 Black       Cher… NA   
13  NA     23W   W       light        58 Black       Cher… NA   
14 "Mary … 23W   W       light        61 Black       Cher… NA   
15 "Mary … 23W   W       light        61 Black       Cher… NA   
16 "Mary … 23W   W       light        61 Black       Cher… NA   
# A tibble: 9 x 2
  comment                                           address
  <chr>                                             <chr>  
1 "Johnston, Melissa - ARS:\r\nTest Note"           2003-4 
2 "Johnston, Melissa - ARS:\r\nAnother stupid note" 2003-6 
3 "Johnston, Melissa - ARS:\r\nsilly steer note"    2003-9 
4 "Mary Ashby:\r\nNo wt. - in 15SW"                 2003-11
5 "Johnston, Melissa - ARS:\r\nTest Note"           2002-4 
6 "Johnston, Melissa - ARS:\r\nAnother stupid note" 2002-6 
7 "Mary Ashby:\r\nNo wt. - in 15SW"                 2002-11
8 "Johnston, Melissa - ARS:\r\nTest Note"           2001-4 
9 "Mary Ashby:\r\nNo wt. - in 15SW"                 2001-11
library(xlsx)
library(tidyverse)

wb <- xlsx::loadWorkbook(file = 'test_data_30oct2020 (1).xlsx')

sheets <- getSheets(wb)
sheet <- sheets[[1]]
rows <- getRows(sheet)
cells <- getCells(rows)


comments <- lapply(cells, getCellComment)


read_comments <- comments %>% 
  purrr::discard(is.null)

resp <- vector('list')

for (i in seq_along(read_comments)) {
  
  resp[[i]] <- read_comments[[i]]$getString()
  
}

resp