gpt4 book ai didi

r - 当excel文件存在或工作表存在时如何在R中使用write.xlsx

转载 作者:行者123 更新时间:2023-12-04 19:55:46 24 4
gpt4 key购买 nike

我正在尝试使用 openxlsx::write.xlsx 将结果写入 R 中的 Excel 电子表格中。

  1. 如果文件存在并且要添加新工作表,我可以使用 append=T。除了使用if来检查文件之外,有没有办法自动检查?

  2. 如果文件和工作表都存在,并且要更新此工作表,我该如何覆盖结果?谢谢。

最佳答案

这是一个 openxlsx 答案。为了进行演示,我们需要一些数据。

## Create a simple test file 
library(openxlsx)
hs <- createStyle(textDecoration = "Bold")
l <- list("IRIS" = iris, "MTCARS" = mtcars)
write.xlsx(l, file = "TestFile.xlsx", borders = "columns", headerStyle = hs)

问题1

您可以使用

检查文件是否存在
## Check existence of file
file.exists("TestFile.xlsx")

您可以检查工作簿中是否存在该选项卡(工作表)

## Check available sheets
getSheetNames("TestFile.xlsx")

问题 2 的步骤:
1. 将文件读入 Workbook 对象。
2. 将要修改的sheet中的数据拉入data.frame中。
3.修改data.frame以适应口味
4. 将数据保存回工作簿
5. 将工作簿保存到磁盘
为了获得一个简单的示例,让我们创建一个简单的测试文件。

## Load existing file
wb = loadWorkbook("TestFile.xlsx")

## Pull all data from sheet 1
Data = read.xlsx(wb, sheet=1)

## Change a single element for demonstration
## ** Beware!! ** Because of the header,
## the 2,2 position in the data
## is row 3 column 2 in the spreadsheet
Data[2,2] = 1492

## Put the data back into the workbook
writeData(wb, sheet=1, Data)

## Save to disk
saveWorkbook(wb, "TestFile.xlsx", overwrite = TRUE)

您可以打开电子表格并检查是否已进行更改。

如果您想完全更改工作表(如您的评论中所示),您只需删除旧的工作表并用新的工作表替换即可使用相同的名称。

removeWorksheet(wb, "IRIS")
addWorksheet(wb, "IRIS")
NewData = data.frame(X1=1:4, X2= LETTERS[1:4], X3=9:6)
writeData(wb, "IRIS", NewData)
saveWorkbook(wb, "TestFile.xlsx", overwrite = TRUE)

关于r - 当excel文件存在或工作表存在时如何在R中使用write.xlsx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59585672/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com