使用包openxlsx从R在Excel中粘贴图像时遇到错误

时间:2019-04-25 13:31:16

标签: r excel openxlsx

我正在尝试使用R包openxlsx将保存在文件夹中的图像粘贴到Excel。我已经完全研究了软件包文档,并按照文档中给出的步骤进行了学习。但是即使包中给出的示例对我也不起作用

## Create a new workbook
wb <- createWorkbook("Ayanami")
## Add some worksheets
addWorksheet(wb, "Sheet 1")
addWorksheet(wb, "Sheet 2")
addWorksheet(wb, "Sheet 3")
## Insert images
img <- system.file("einstein.jpg", package = "openxlsx")
insertImage(wb, "Sheet 1", img, startRow = 5, startCol = 3, width = 6, height = 5)
insertImage(wb, 2, img, startRow = 2, startCol = 2)
insertImage(wb, 3 , img, width = 15, height = 12, startRow = 3, startCol = "G", units = "cm")
## Save workbook
saveWorkbook(wb, "insertImageExample.xlsx", overwrite = TRUE)

这是软件包文档中给出的示例。我使用的是“ .jpg”文件,而不是“ einstein.jpg”。我试图将该图像粘贴到我的工作簿“ wb”中。函数“ system.file”不会获取我正在传递的图像。我已经确定图像是否已存储与路径无关。

有人可以帮助我使用此功能吗,或者有其他经过验证的替代方法?

3 个答案:

答案 0 :(得分:0)

您不应使用system.file函数,因为要粘贴到工作簿中的图像不是系统文件。

相反,您将需要以下内容:

img <- "C:/your_dir/your_filename.jpg"

insertImage(wb, "Sheet 1", img, startRow = 5, startCol = 3, width = 6, height = 5)
saveWorkbook(wb, "insertImageExample2.xlsx", overwrite = TRUE)

答案 1 :(得分:0)

对于上下文,您可能会在这里逐步了解openxlsx的文档:ycphs.github.io/openxlsx/articles/Introduction.html

图像链接在链接上不正确。您应该使用:

img <- readJPEG(file.path(path.package("openxlsx"), "extdata/einstein.jpg"))

答案 2 :(得分:-1)

尝试这样的事情:

    library(jpeg)
    img<-readJPEG("einstein.jpg")
    plotFn(img)
    insertPlot(wb, 1)
    saveWorkbook(wb, "insertImageExample.xlsx", overwrite = TRUE)
    file.show("insertImageExample.xlsx")