R:加载Excel工作簿(如果存在)或创建它

时间:2018-08-02 07:17:35

标签: r excel error-handling try-catch openxlsx

我的代码中有一个预定义的filename。我希望加载该文件(如果存在)或创建一个新的工作簿(如果不存在)。我正在尝试使用tryCatch和软件包openxlsx使用以下代码来做到这一点:

tryCatch({wb <- loadWorkbook(fileName)}, error=function(e){wb <- createWorkbook()})
*some processing*
saveWorkbook(wb, fileName, overwrite = TRUE)

我的tryCatch似乎没有运行任何一个命令。当我单独运行loadWorkbook时,会引发错误“文件不存在”,但是当我运行tryCatch时,它不会创建新的工作簿。我是否以错误的方式使用tryCatch?

2 个答案:

答案 0 :(得分:0)

我相信TryCath是正确的,但是在保存工作簿之前,您需要至少创建一张纸。试试这个:

browserSync.init({
    server: {
      baseDir: "app"
    },
    online: true,
    tunnel: true,
    logLevel: "debug"
  });

答案 1 :(得分:-1)

发现了问题。
由于错误部分是一个函数,因此将在该函数中本地创建wb。我只需要按照Juan的建议,通过在tryCatch之外分配它来从函数返回wb。

wb <- tryCatch({loadWorkbook(fileName)}, error=function(e){createWorkbook()})
*some processing*
saveWorkbook(wb, fileName, overwrite = TRUE)