XLSX
Images
Embed PNG and JPEG images in worksheets
Basic Image
{
"worksheets": [
{
"name": "Images",
"rows": [{ "cells": [{ "value": "Label" }, { "value": "Data" }] }],
"images": [
{
"data": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=",
"type": "png",
"col": 3,
"row": 1
}
]
}
]
}
import { readFileSync } from "node:fs";
import { generateWorkbook } from "@office-open/xlsx";
const buffer = await generateWorkbook({
worksheets: [
{
name: "Images",
rows: [{ cells: [{ value: "Label" }, { value: "Data" }] }],
images: [
{
data: readFileSync("./photo.png"),
type: "png",
col: 3, // 1-based column (D column)
row: 1, // 1-based row
},
],
},
],
});
Multiple Images
{
"worksheets": [
{
"name": "Gallery",
"rows": [{ "cells": [{ "value": "Photos" }] }],
"images": [
{
"data": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=",
"type": "png",
"col": 2,
"row": 2
},
{
"data": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=",
"type": "jpg",
"col": 5,
"row": 2
}
]
}
]
}
images: [
{ data: pngData, type: "png", col: 2, row: 2 },
{ data: jpgData, type: "jpg", col: 5, row: 2 },
],
Supported Formats
| Format | type value |
|---|---|
| PNG | "png" |
| JPEG | "jpg" |
Already-compressed formats (PNG/JPEG/GIF) are stored uncompressed (ZIP_STORED) since they are already compressed; vector/uncompressed formats (EMF/WMF/BMP) use DEFLATE.
Image Options Reference
| Option | Type | Description |
|---|---|---|
data | Uint8Array | Image file data |
type | "png" | "jpg" | Image format |
col | number | 1-based column position |
row | number | 1-based row position |