使用ExcelJS处理Excel

文章介绍了如何在浏览器环境下利用ExcelJS替代SheetJS来读取Excel文件,因为SheetJS的样式读取部分是收费的。通过安装和引用ExcelJS及FileSaver库,可以实现Excel文件的读取和保存。示例代码展示了如何加载模板文件,修改工作簿内容,然后保存为新的Excel文件。
部署运行你感兴趣的模型镜像

官方中文文档在浏览器环境下,用Excel.js读取excel文件

因为SheetJS读取样式的那一部分是收费的(具体原因是因为有人花钱找他们开发的,再免费对花钱的人不公平),所以找到了ExcelJS

ExcelJS

  1. 安装ExcelJS npm install exceljs
  2. exceljs.min.js文件路径 node_modules\exceljs\dist\exceljs.min.js
  3. 引用exceljs.min.js

FileSaver

  1. 安装FileSaver npm install file-saver
  2. FileSaver.min.js文件路径 node_modules\file-saver\dist\FileSaver.min.js
  3. 引用FileSaver.min.js
<script src="exceljs.min.js"></script>
<script src="FileSaver.min.js"></script>
var templatePath = 'http://localhost:12345/Test.xlsx';
    var req = new XMLHttpRequest();
    req.open('GET', templatePath, true);
    req.responseType = 'arraybuffer';
    req.onload = function (e) {
        var workbook = new window.ExcelJS.Workbook();

        //因为workbook.xlsx.load和workbook.xlsx.writeBuffer都是异步方法,所以需要使用then
        workbook.xlsx.load(req.response).then(() => {

            //修改workbook
            workbook.creator = 'vvull';

            //保存Excel
            workbook.xlsx.writeBuffer().then(res => {
                var blob = new Blob([res], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8' });
                saveAs(blob, 'vvull.xlsx');
            })
        });
        

    }
    req.send();

您可能感兴趣的与本文相关的镜像

Qwen-Image

Qwen-Image

图片生成
Qwen

Qwen-Image是阿里云通义千问团队于2025年8月发布的亿参数图像生成基础模型,其最大亮点是强大的复杂文本渲染和精确图像编辑能力,能够生成包含多行、段落级中英文文本的高保真图像

从引用[1]可了解到使用`exceljs`处理 Excel 文件的部分操作,以下是详细的方法和示例。 ### 处理 Excel 文件的基本流程 1. **引入模块**:使用`require`引入`exceljs`模块。 2. **创建工作簿**:使用`new exceljs.Workbook()`创建一个空的工作簿。 3. **读取文件**:使用`workbook.xlsx.readFile`方法读取 Excel 文件。 4. **操作工作表**:通过`workbook.worksheets`获取工作表数组,进而操作工作表。 ### 示例代码 ```javascript const excelJS = require('exceljs'); // 创建一个空的工作簿 const workbook = new excelJS.Workbook(); // 读取 Excel 文件 async function readExcel() { try { await workbook.xlsx.readFile('蔬菜周报1020.xlsx'); // 读取第一个工作表 const worksheet = workbook.worksheets[0]; // 处理工作表数据 const rows = worksheet.getRows(1, worksheet.rowCount); rows.forEach((row) => { row.eachCell((cell) => { console.log(cell.value); }); }); } catch (error) { console.error('读取文件时出错:', error); } } readExcel(); ``` ### 代码解释 1. **引入模块**:`const excelJS = require('exceljs');`引入`exceljs`模块。 2. **创建工作簿**:`const workbook = new excelJS.Workbook();`创建一个空的工作簿。 3. **读取文件**:`await workbook.xlsx.readFile('蔬菜周报1020.xlsx');`读取指定的 Excel 文件。 4. **操作工作表**:`const worksheet = workbook.worksheets[0];`获取第一个工作表,然后遍历工作表的每一行和每一个单元格并输出其值。 ### 写入 Excel 文件示例 ```javascript const excelJS = require('exceljs'); // 创建一个空的工作簿 const workbook = new excelJS.Workbook(); // 创建一个工作表 const worksheet = workbook.addWorksheet('My Sheet'); // 添加表头 worksheet.addRow(['Name', 'Age']); // 添加数据 worksheet.addRow(['John', 25]); worksheet.addRow(['Jane', 30]); // 保存文件 async function writeExcel() { try { await workbook.xlsx.writeFile('output.xlsx'); console.log('文件写入成功'); } catch (error) { console.error('写入文件时出错:', error); } } writeExcel(); ``` ### 代码解释 1. **创建工作簿和工作表**:创建一个空的工作簿并添加一个名为`My Sheet`的工作表。 2. **添加表头和数据**:使用`addRow`方法添加表头和数据。 3. **保存文件**:使用`workbook.xlsx.writeFile`方法将工作簿保存为`output.xlsx`文件。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值