R/openxlsx/查找Excel文件中的第一个非空单元格

标签 r openxlsx

我正在尝试将数据从 R 写入现有的 Excel 文件,同时保留格式。我能够按照这个问题的答案 ( Write from R into template in excel while preserving formatting ) 这样做,除了我的文件在开头包含空列,所以我不能只在单元格 A1 中开始写入数据。

作为解决方案,我希望能够找到第一个非空单元格,然后从那里开始写作。如果我运行 read.xlsx(file="myfile.xlsx")使用 openxlsx包,空列和空行被自动删除,只剩下数据,所以这对我不起作用。

所以我想我会先使用 wb <- loadWorkbook("file.xlsx") 加载工作表所以我可以访问 getStyles(wb) (有效)。但是,后续命令 getTables返回 character(0) , 和 wb$tables返回 NULL .我想不通这是为什么?这些变量会告诉我第一个非空单元格,我说得对吗?

我已经尝试直接在 Excel 文件中手动删除数据前面的空列和行,但这并没有改变。我走在正确的道路上还是有不同的解决方案?

最佳答案

根据 Stéphane Laurent 的建议, 包裹 tidyxl在这里提供完美的解决方案。

例如,我现在可以在 Excel 文件中搜索字符值,例如我感兴趣的变量名称(“Item”、“Score”和“Mean”,它们对应于 names()data.frame我想写入我的 Excel 文件):

require(tidyxl)
colnames <- c("Item","Score","Mean")
excelfile <- "FormattedSheet.xlsx"
x <- xlsx_cells(excelfile)

  # Find all cells with character values: return their address (i.e., Cell) and character (i.e., Value)
  chars <- x[x$data_type == "character", c("address", "character")]

  starting.positions <- unlist(
    chars[which(chars$character %in% colnames), "address"]
  )
     # returns: c(C6, D6, E6)

关于R/openxlsx/查找Excel文件中的第一个非空单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54328649/

相关文章:

r - ggplot2 中具有多个密度的多个图

r - 如何嵌套 knit 调用以修复重复的 block 标签错误?

r - 为什么无穷远的日期看起来像 NAs 但行为像日期?

r - 从 Excel 中将 float 作为字符串导入时出现问题。不正确地添加精度

r - 将空白更改为NA的功能

r - 创建一个表,提供 R 中 B 列和 C 列的 A 列的平均值

r - 使用 openxlsx : Error in file(con, "r"将 Excel 数据导入 R 中):无效的 'description' 参数

r - 根据具有指定格式(例如,删除线)的单元格消除 R 中的 Excel 行?

r - openxlsx 中的换行符

xlsm - 使用exceljs包npm读写xlsm文件