sheetjs 插入多个https图片
时间: 2024-10-10 21:12:38 浏览: 43
SheetJS是一个JavaScript库,主要用于处理Excel和Google Sheets电子表格数据。如果你想通过它插入多个HTTPS图片到工作表中,可以按照以下步骤操作:
1. 首先,确保你已经包含了`xlsx`和`fs`这两个SheetJS库的模块:
```javascript
const XLSX = require('xlsx');
const { writeFile } = require('fs/promises');
```
2. 创建一个新的工作簿对象 `workbook` 或加载现有的工作簿。
3. 使用 `XLSX.utils.image_to_base64` 函数将每个HTTPS图片转换为Base64编码的数据。例如:
```javascript
async function loadImage(url) {
return await fetch(url).then(res => res.blob()).then(blob => URL.createObjectURL(blob));
}
let base64Images = await Promise.all([
loadImage('https://example.com/image1.jpg'),
loadImage('https://example.com/image2.png'),
// 更多图片...
]);
```
4. 将Base64字符串转换成适合存储在工作表的格式,通常是把它们作为图像链接插入单元格:
```javascript
let imagesData = base64Images.map(base64Url => `![](data:image/jpeg;base64,${base64Url})`);
```
5. 现在你可以将这些图像链接添加到指定的工作表行或列上。假设我们想在A列第1行开始插入:
```javascript
const worksheet = workbook.Sheets['Sheet1'];
worksheet['A1'] = imagesData[0];
// 依次添加其他行
worksheet['A2'] = imagesData[1];
// 如果有更多图片,添加更多的 'A' + 序列号...
```
6. 最后,保存整个工作簿到文件:
```javascript
const buffer = XLSX.write(workbook, { type: 'buffer' });
await writeFile('output.xlsx', buffer);
```
阅读全文