【发布时间】:2018-07-17 14:39:34
【问题描述】:
问。我正在寻找一种方法来在读取和操作后保留 excel 文件的 cmets。
0。我的excelfile:(不能和你分享!)
1.我想这样读:(将 excel 中的 col 注释作为 R 中的 col 注释)
(使用任何可以执行此操作的库。最好使用 openxlsx)
df<- data.frame(a=1:3,b=4:6,c=7:9)
comment(df$a) <- "Random comment" #is there a better practice to preserve the excel comment?
2。随机操作数据:
df[2:3] <- df[2:3] * 2
df$d <- "funny"
编辑:
library(openxlsx)
wb <- loadWorkbook("commented.xlsx")
df <- readWorkbook(wb)
df[2:3] <- df[2:3] * 2
df$d <- "funny"
df <- rev(df)
df <- df[order(df$a,decreasing = T),]
writeData(wb, 1, df)
saveWorkbook(wb, "modified.xlsx")
到目前为止,一个很棒的解决方案!
- 从这个小例子可以看出,cmets 保持静止。
- 我得到额外的空̶“COMMENT弹出窗口”̶以我所得̶f̶i̶l̶e̶.̶只是我?̶(解决办法可用!) LI>
【问题讨论】:
-
你可以试试 tidyxl package。我不确定其他人是否会关注格式或 cmets。
-
tidyxl据我所知是不允许写的。 -
您是否希望 cmets 遵循数据转换?这样在示例中,评论将与
"a"单元格一起移动到 D1? -
当然,如果可能的话,那就太好了。 (我知道我的 OP 中没有包含那个案例 ':))
-
是的,我知道这会有什么用。但是,我想不出一个简单的方法来解决这个问题。使用
writeData(),您基本上只是重写数据而不是实际移动单元格,因此它不会“自动”得到处理。也许其他人会为此提出解决方案。