当前位置: 首页 > 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}`);

}

http://www.dtcms.com/a/68527.html

相关文章:

  • 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++标准模板库学习--函数模板返回值参数类型
  • Linux驱动开发之中断处理
  • 网页转图片的方法(超出可视范围的也可以)dom-to-image
  • 网编高级 day03
  • dify-1.0.1 + deepseek调用本地知识库
  • ASP4644四通道降压稳压器的工业高效电源管理方案
  • linux常用基本指令汇总
  • vue3:八、登录界面实现-忘记密码
  • Dump 文件介绍
  • Symmetry Protected Topological phases of Quantum Matter——对称性保护量子物质的拓扑相位
  • 2.PPP专题