代码之家  ›  专栏  ›  技术社区  ›  Andre Elrico

读写带注释的excel文件

  •  1
  • Andre Elrico  · 技术社区  · 6 年前

    问题。 我在寻找一种方法来保存一个excel文件的评论后,阅读和操作。

    0个。我的档案:(不能和你分享!)

    enter image description here

    一。我想这样读: (excel中的col comment作为r中的col comment)

    (不管图书馆怎么做。最好是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"
    

    三。保存数据 (应该是这样的:) enter image description here

    编辑:

    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")
    

    到目前为止,这是一个很好的解决方案!

    1. 从这个小例子可以看出,评论保持不变。
    2. I̶ ̶g̶e̶t̶ ̶a̶n̶ ̶a̶d̶d̶i̶t̶i̶o̶n̶a̶l̶ ̶e̶m̶p̶t̶y̶ ̶"̶c̶o̶m̶m̶e̶n̶t̶ ̶p̶o̶p̶ ̶u̶p̶ ̶w̶i̶n̶d̶o̶w̶"̶ ̶i̶n̶ ̶m̶y̶ ̶r̶e̶s̶u̶l̶t̶i̶n̶g̶ _ F_ I_ L_ E_ I_ S_ I_ T_ J_ U_S_T_ M_ E_?_(提供解决方案!)
    1 回复  |  直到 6 年前
        1
  •  2
  •   Mikko Marttila    6 年前

    你可以这样做 OpenXLSX :使用 loadWorkbook() 要读入原始文件,请修改所需的数据,并使用 saveWorkbook() 是的。评论将保留:

    library(openxlsx)
    
    wb <- loadWorkbook("commented.xlsx")
    df <- readWorkbook(wb)
    
    df[2:3] <- df[2:3] * 2
    df$d    <- "funny"
    
    writeData(wb, 1, df)
    saveWorkbook(wb, "modified.xlsx")
    
    unlink(c("commented.xlsx", "modified.xlsx"))
    

    样本数据 以下内容:

    library(openxlsx)
    
    wb <- createWorkbook("unknown")
    addWorksheet(wb, "Sheet 1")
    
    df <- data.frame(a = 1:3, b = 4:6, c = 7:9)
    writeData(wb, 1, df)
    
    comment <- createComment("Random comment")
    writeComment(wb, 1, 1, 1, comment)
    
    saveWorkbook(wb, "commented.xlsx")