您的位置:首页 > 房产 > 家装 > 使用nodejs/exceljs读取、操作、写入excel文件

使用nodejs/exceljs读取、操作、写入excel文件

2025/4/19 21:58:52 来源:https://blog.csdn.net/qiuzen/article/details/139611846  浏览:    关键词:使用nodejs/exceljs读取、操作、写入excel文件

现在edge已经不支持activexobject了,如果想用javascript操作excel文件,基本上只能用nodejs了。下面的代码就是用nodejs操作excel文件的可用方法,读取每个cell,设置颜色。

// save this content as excel.js file
// # npm i exceljs
// # node excel.jsconst ExcelJS = require('exceljs');async function ProcessSheet(sheet)
{let rows=sheet.rowCount, cols=sheet.columnCount;console.log(`  ${rows} rows, ${cols} cols`);for(let row=1; row<=rows; row++){let r=sheet.getRow(row);if(row==1) { if(!r.font) r.font={};  r.font.color={ argb: 'FFFF0000'};  }for(let col=1; col<=cols; col++){let cell=r.getCell(col); let v=cell.value;console.log(`  [${row}, ${col}] ${v}`);}}  
}async function ProcessFile(ExcelFilePath)
{const workbook = new ExcelJS.Workbook();await workbook.xlsx.readFile(ExcelFilePath);let sheets=workbook.worksheets, sheetsCount=sheets.length;for(let sheet_index=0; sheet_index<sheetsCount; sheet_index++){let sheet=sheets[sheet_index];    console.log(`sheet ${sheet.id}: ${sheet.name}`);await ProcessSheet(sheet);}// Iterate over all sheets// Note: workbook.worksheets.forEach will still work but this is better//--workbook.eachSheet(function(worksheet, sheetId) {     });// fetch sheet by name//--const worksheet2 = workbook.getWorksheet('My Sheet');// fetch sheet by id//--const worksheet3 = workbook.getWorksheet(1);await workbook.xlsx.writeFile(ExcelFilePath);
}function CreateFile()
{const workbook = new ExcelJS.Workbook();workbook.creator = 'Me';workbook.lastModifiedBy = 'Her';workbook.created = new Date(1985, 8, 30);workbook.modified = new Date();workbook.lastPrinted = new Date(2016, 9, 27);const sheet = workbook.addWorksheet('My Sheet');workbook.removeWorksheet(sheet.id);
}ProcessFile("C:\\Users\\Qiuzen\\Desktop\\艺术快递.xlsx");

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com