[英]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.frame
的names()
。寫入我的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.