excel 是否可以使用openxlsx调整插入图像的位置?

iezvtpos  于 2022-11-26  发布在  其他
关注(0)|答案(1)|浏览(248)

我已经创建了一个excel模板的报告。在excel文件中,将有一些图像。我能够插入图像使用openxlsx包。

test.fpath <-'Templates/CB.xlsx'
wb <- openxlsx::loadWorkbook(test.fpath)
insertImage(wb, sheet = 1, file = "tm_player_image.png",startRow = 8,  startCol = 3, width = 1.1, height = 1.73, units = "in")
saveWorkbook(wb, file = "createWorkbookExample.xlsx", overwrite = TRUE)

openxlsx包允许您设置特定的值开始行和列。当我运行脚本,excel文件保存如下图。
First position of the image
但是,我不希望图像的起始行= 8,列= 3。我应该可以拖动图像到任何我想要的地方,并定义左上角的位置值。有什么方法可以实现这一点吗?
Adjusted position of the image
我需要像这样定义图像的位置。

  • 左侧(Sol):13,64''
  • 顶部(Üst):0,74“”

谢谢你的帮助。

8yparm6h

8yparm6h1#

这是可能的,但没有函数来做到这一点,AFAIK Excel的位置总是相对于屏幕和OS一正在使用。因此,你必须使用一点尝试和错误,以获得正确的位置。
看一下wb$drawings[[1]][[1]]。内容是一个XML字符串。您正在查找xdr:from部分(如下所示)。您必须调整xdr:colOffxdr:rowOff,如下面的示例所示。我必须插入一个相当高的值才能看到任何影响。

<xdr:from xmlns:xdr="http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing">\n
<xdr:col xmlns:xdr="http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing">2</xdr:col>\n
<xdr:colOff xmlns:xdr="http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing">50000</xdr:colOff>\n
<xdr:row xmlns:xdr="http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing">4</xdr:row>\n
<xdr:rowOff xmlns:xdr="http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing">40000</xdr:rowOff>\n
</xdr:from>

相关问题