nodejs插入图片url到excel表中

依赖的npm包:

封装一个工具函数

/**
 * 插入图片到excel
 * @param {object} wb 工作簿
 * @param {object} ws 工作表
 * @param {array} data 数据
 * @param {number} col excel表图片列的索引
 * @param {object} ext 额外描述
 * @param {string} fieldName 数据中图片的键名
 */
async function insertImg2excel({ wb, ws, data, col, ext, fieldName }) {
    const promises = data.map(async (d, i) => {
        const url = d[ fieldName ]
        if (!url) {
            return 
        }
        const ret = await fetch(url)
        const bufferData = await ret.arrayBuffer()
        const imgId = wb.addImage({
            buffer: Buffer.from(bufferData),
            extension: 'png'
        })
        // ws.addImage(imgId, {
        //     tl: { col, row: i + 1 },
        //     ext
        // })
        ws.addImage(imgId, {
            tl: { col: col, row: i + 1 }, // top left
            br: { col: col + 1, row: i + 2 } // bot right
        })
    })
    await Promise.all(promises)
}

使用示例:

const wb = new Excel.Workbook()
const ws = wb.addWorksheet('sheet_name')
ws.columns = [
    {
        header: '姓名',
        key: 'name',
    },
    {
        header: '照片',
        key: 'img',
    },
]

const data = [
    {
        name: 'jzx',
        img: 'xxxx.png'
    }
]
ws.addRows(data)

await insertImg2excel({
    wb,
    ws,
    data,
    col: 1,
    fieldName: 'img',
    // ext: { 
    //     width: 60,
    //     height: 60
    // }
})

如果你是直接插入本地图片,请参考exceljs的文档。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值