| sheet_add_drawing | R Documentation |
Add a graphical element into a sheet of an xlsx workbook.
This is a generic function dispatching on value. Supported inputs
include:
external_img(): an image file (PNG, JPEG, GIF, ...) copied into
the workbook and placed on the sheet.
gg: a ggplot object rendered to PNG via ragg::agg_png() and
embedded via the external_img path. Extra arguments: res
(default 300 ppi), alt_text (auto-detected via
ggplot2::get_alt_text() when empty), scale (same semantics as
ggplot2::ggsave()).
The drawing can be positioned in three ways, matching Excel's own "Format Picture" options:
Fixed position (default): pass left / top and
width / height in inches. The drawing stays put when rows or
columns are inserted/resized.
Move and size with cells (Excel's default): pass
anchor = "B2:H20" (a cell range). The drawing spans those two
cells and follows them.
Move but don't size with cells: pass anchor = "B2"
(a single cell). The drawing anchors to that cell, keeping the
size set by width / height.
Additional methods for ms_chart and dml are provided by the
extension packages 'mschart' and 'rvg'.
Use sheet_write_data() to write data into the sheet before or
after adding a drawing.
sheet_add_drawing(x, value, sheet, ...)
x |
rxlsx object created by |
value |
object to add (dispatched to the appropriate method) |
sheet |
sheet name (must already exist, see |
... |
method-specific arguments. Common across |
the rxlsx object (invisibly)
read_xlsx(), add_sheet(), sheet_write_data()
img <- system.file("extdata", "example.png", package = "officer")
if (nzchar(img) && file.exists(img)) {
x <- read_xlsx()
x <- add_sheet(x, label = "pics")
x <- sheet_add_drawing(
x, sheet = "pics",
value = external_img(img, width = 2, height = 2)
)
print(x, target = tempfile(fileext = ".xlsx"))
}
if (requireNamespace("ggplot2", quietly = TRUE)) {
gg <- ggplot2::ggplot(iris, ggplot2::aes(Sepal.Length, Sepal.Width)) +
ggplot2::geom_point()
x <- read_xlsx()
x <- add_sheet(x, label = "plots")
x <- sheet_add_drawing(x, value = gg, sheet = "plots",
width = 4, height = 3)
print(x, target = tempfile(fileext = ".xlsx"))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.