当前位置: 首页 > news >正文

使用excel4node向excel批量写入图片

import fs from 'fs';

import path from 'path';

import xl from "excel4node";

// 创建一个新的工作簿

const wb = new xl.Workbook();

// 添加一个工作表

const ws = wb.addWorksheet('Sheet 1');

// 指定要读取的文件夹路径

const directoryPath = 'G://测试'; // 替换为你的文件夹路径

let i = 1;

const putImg = (ws, file) => {

    ws.row(i).setHeight(200); // 设置每行的行高为50

    ws.column(i).setWidth(40);


 

    ws.addImage({

        path: 'G://测试//' + file,

        type: 'picture',

        position: {

            type: 'twoCellAnchor',

            from: {

                col: 1,

                colOff: 0,

                row: i,

                rowOff: 0,

            },

            to: {

                col: 2,

                colOff: 0,

                row: i + 1,

                rowOff: 0,

            },

        },

    });

    i++;

}

// 使用同步方法读取文件夹

try {

    const files = fs.readdirSync(directoryPath);

    files.forEach(file => {

        // 获取文件的完整路径

        const filePath = path.join(directoryPath, file);

        // 使用fs.statSync检查是文件还是目录

        const stats = fs.statSync(filePath);

        if (stats.isFile() && file.startsWith("1074118")) {

            console.log(`File: ${file}`);

            let name = file.split(".")[0]

            ws.cell(i,2).string(name)

            // 将图片放入excel

            putImg(ws, file)

           

        } else if (stats.isDirectory()) {

            // console.log(`Directory: ${file}`); // 你可以递归地读取子目录

        }

    });

    // 将工作簿保存到文件

    wb.write('document_with_image.xlsx', (err, stats) => {

        if (err) {

            console.error('出现错误:', err);

        } else {

            console.log('带有图片的Excel文档已创建');

        }

    });

} catch (err) {

    console.error(`Unable to scan directory: ${err}`);

}

相关文章:

  • 2024 年第四届高校大数据挑战赛-赛题 A:岩石的自动鉴定
  • datax源码分析
  • 一个网络安全产品设计文档
  • Java高级-03.反射-获取构造器对象并使用
  • kali常用命令
  • Vue3使用ECharts入门示例
  • C++初阶——类和对象(一)
  • ArcGIS助力水文分析:数据处理、地图制作与流域特征提取
  • Linux--普通文件的管理
  • 如何让你的应用在市场中脱颖而出?
  • vscode远程连接服务器并运行项目里的.ipynb文件 如何在 Jupyter Notebook 中切换/使用 conda 虚拟环境?
  • 【计算机网络通信 MQTT和AMQP的原理及应用场景、优缺点】
  • Maven安装、idea集成Maven、Maven依赖管理、Maven生命周期
  • WEB-CTFyj解题视频笔记(持续更新)
  • 不与最大数相同的数字之和(信息学奥赛一本通-1113)
  • 图像分类数据集
  • 工程实践:如何使用SU17无人机来实现室内巡检任务
  • python3GUI--模仿安卓桌面 By:PyQt5(附下载地址)
  • Linux——管道通信
  • C++标准模板库学习--函数模板返回值参数类型
  • 广西壮族自治区党委常委会:坚决拥护党中央对蓝天立进行审查调查的决定
  • 六省会共建交通枢纽集群,中部六省离经济“第五极”有多远?
  • 总奖金池百万!澎湃与七猫非虚构写作与现实题材征文大赛征稿启动
  • 刘国中将出席第78届世界卫生大会并顺访瑞士、访问白俄罗斯
  • 一涉嫌开设赌场的网上在逃人员在山东威海落网
  • 清雪车司机未拉手刹下车导致溜车被撞亡,事故调查报告发布