我正在尝试使用XLConnect将数字数组写入Excel工作表中的范围。
以下是有问题的行:
wb = XLConnect::loadWorkbook(input$TestFile$datapath, create = FALSE, password = NULL)
assign("wb",wb,envir=Env)
# Bunch of calculations happen here
XLConnect::writeWorksheet(Env$wb,Env$Var$Val,sheet = "SheetName", startRow = startRow, startCol = 1)
原始错误:
Error during wrapup: unable to find an inherited method for function ‘writeWorksheet’ for signature ‘"character", "numeric", "missing"’
我猜到问题是最后一个参数返回“ missing”。经过调查,我发现Env$wb
位于一个临时位置,例如\AppData\\Local\\Temp\\Rtmp4WP5Gh/6e6a1ece80898bef27b4580b/0
。
在中断模式下,我尝试将Env $ wb替换为以下文件的实际位置字符串:
paste(normalizePath(dirname(getwd())),"/",input$TestFile$name,sep = "")
这样新的输入将是
XLConnect::writeWorksheet(paste(normalizePath(dirname(getwd())),"/",input$TestFile$name,sep = ""),Env$Var$Val,sheet = "SheetName", startRow = startRow, startCol = 1)
返回错误
Error during wrapup: unable to find an inherited method for function ‘writeWorksheet’ for signature ‘"character", "numeric", "character"’
我处理XLConnect的方法是否存在根本性的错误?这是我第一次。