簡體   English   中英

R / openxlsx /在Excel文件中查找第一個非空單元格

[英]R / openxlsx / Finding the first non-empty cell in Excel file

我正在嘗試從R將數據寫入現有的Excel文件,同時保留格式。 我可以按照以下問題的答案進行操作( 在保留格式的同時從R中寫入R到excel中的模板中 ),除了我的文件開頭包含空列,因此我不能僅僅開始在單元格A1中寫入數據。

作為解決方案,我希望能夠找到第一個非空單元格,然后從那里開始寫入。 如果我使用openxlsx包運行read.xlsx(file="myfile.xlsx") ,則空列和空行將被自動刪除,僅保留數據,因此這對我不起作用。

所以我想我首先要使用wb <- loadWorkbook("file.xlsx")加載工作表,這樣我就可以訪問getStyles(wb) (有效)。 但是,后續命令getTables返回character(0) ,而wb$tables返回NULL 我不知道為什么會這樣嗎? 我對嗎,這些變量會告訴我第一個非空單元格嗎?

我嘗試手動在Excel文件中直接刪除數據前面的空列和行,但這並沒有改變。 我在正確的道路上還是有其他解決方案?

根據StéphaneLaurent的建議, tidyxl軟件包在這里提供了完美的解決方案。

例如,我現在可以在Excel文件中搜索字符值,例如感興趣的變量名(“ Item”,“ Score”和“ Mean”,它們對應於我想要的data.framenames() 。寫入我的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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM