我有一个Excel文件,其中包含一些数据。我想使用R在上述工作表上运行一些统计信息,然后将一些值保存到原始Excel工作表的不同列中。有没有办法始终不“覆盖”整个excel文件的方法?
My_data <- read_xlsx("MeasurementData.xlsx", sheet = "Data_Overview")
data$Column1[1] = "result"
write.xlsx(My_data, file="MeasurementData.xlsx", sheetname="Data_Overview" )
因此,我尝试使用此代码来打开我的xlsx文件,将其一个条目更改为“ result”,然后将整个稍有变化的数据帧重写为xlsx文件。但是,我要的是不重写整个文件,而仅覆盖/替换更改的条目。
有什么办法吗?谢谢!
我建议您改用openxlsx
程序包,在该程序包中,您可以更新特定工作表中的特定单元格而不会损坏文件中的其他工作表。
这里是一个例子:
install.packages("openxlsx")
library(openxlsx)
wb <- loadWorkbook("https://github.com/awalker89/openxlsx/files/744103/template.xlsx")
writeData(wb, sheet = "Iris Data", x = head(iris, 20))
saveWorkbook(wb, "populated_template.xlsx")
openXL("populated_template.xlsx")
如您所见,格式未更改,文件中还有另一张包含用于填充数据的图的表也完整无缺。
您可以将x
设置为单个值(如您的示例),并根据需要设置位置(使用startCol
和startRow
。
希望您发现它有用。