简单的通过nodejs批量处理excel。

2 篇文章 0 订阅

首先通过npm下载xlsx包,他可以帮我们把excel格式的文件转换为我们熟悉的json格式。

exceljs也尝试了下,感觉文档不好找,格式又很头疼(应该对处理excel来说功能更强大)。所以还是选择了友好的xlsx。

npm i xlsx -S

/* 注:-S  为save,即无论是开发环境还是生产环境,都对此包有依赖(都存在);-D 为dev 即只在开发环境依赖*/

引入模块和要处理的文件

let xlsx = require('xlsx'); // 引入模块

let workbook = xlsx.readFile('E:/project/nodeExcel/file/excel01.xlsx'); // 引入要处理的excel绝对路径

然后获取表名:

即同一个excel文件会有n个表,我们需要根据所要操作的选择一个进行处理,代码如下:

let sheetNames = workbook.SheetNames; //获取表名,此处表名如果是知道的话,可以手动赋值

let sheet = workbook.Sheets[sheetNames[0]]; //通过表名得到表

var data =xlsx.utils.sheet_to_json(sheet); //通过xlsx模块将表数据转为JSON数据

// 处理信息
for(let i=0;i< data.length;i++) {
    let count = data[i]['沪A账号、深A账号']
    if(count){
        count = count.toString().split('、')
        data[i]['沪A账号'] = count[0]
        data[i]['深A账号'] = count[1]

    }
    delete data[i]['沪A账号、深A账号']
}

let ss = xlsx.utils.json_to_sheet(data); //通过工具将json转表对象


let keys = Object.keys(ss).sort(); //排序 [需要注意,必须从A1开始]

let ref = keys[1]+':'+keys[keys.length - 1]; // 这个是定义一个字符串 也就是表的范围[A1:C5]

let workbookWrite = { // 定义操作文档
    SheetNames:['nodejs-sheetname'], //设置表名
    Sheets:{
        'nodejs-sheetname':Object.assign({},ss,{'!ref':ref}) //表对象[注意表名]
    },
}

xlsx.writeFile(workbookWrite,"./excelCopy.xls"); //将数据写入文件

其实我们处理的就是JSON数据,这个对于我们来说就很熟悉了,对象增加一个,表就对应增一列,最后通过模块吧json再转为excel数据,然后导出文件。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Node.js 可以使用第三方库将 MySQL 数据导出为 Excel 文件。以下是使用 `mysql` 和 `exceljs` 这两个库实现导出的示例代码: 首先,你需要通过 `npm` 安装这两个库: ``` npm install mysql exceljs ``` 然后创建一个 `exportExcel.js` 文件,并将以下代码复制到文件中: ```javascript const mysql = require('mysql'); const ExcelJS = require('exceljs'); // 创建 MySQL 连接 const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'database_name', }); // 连接 MySQL connection.connect((error) => { if (error) { console.error('Error connecting to MySQL:', error); return; } console.log('Connected to MySQL'); // 查询数据 connection.query('SELECT * FROM table_name', (error, results) => { if (error) { console.error('Error querying MySQL:', error); return; } console.log('Retrieved data from MySQL'); // 创建工作簿 const workbook = new ExcelJS.Workbook(); const worksheet = workbook.addWorksheet('Sheet 1'); // 将数据添加到工作表 results.forEach((row, index) => { const rowIndex = index + 1; Object.values(row).forEach((value, columnIndex) => { const cellIndex = columnIndex + 1; worksheet.getCell(`${String.fromCharCode(64 + cellIndex)}${rowIndex}`).value = value; }); }); // 保存工作簿为 Excel 文件 workbook.xlsx.writeFile('export.xlsx') .then(() => { console.log('Excel file exported'); }) .catch((error) => { console.error('Error exporting Excel file:', error); }) .finally(() => { // 关闭数据库连接 connection.end(); console.log('Disconnected from MySQL'); }); }); }); ``` 以下是文件中需要注意的几点: - 在 `connection` 对象的配置中,你需要替换 `localhost`、`root`、`password` 和 `database_name` 为你的 MySQL 连接信息。 - 在 `connection.query` 中,你需要替换 `table_name` 为你要导出数据的表名。 - 在 `workbook.xlsx.writeFile` 中,你需要替换 `export.xlsx` 为你想要导出的 Excel 文件的路径。 当你运行这段代码时,它会连接到 MySQL 数据库,并查询你指定的表中的数据。然后,它会将查询结果转换为 Excel 文件 (`export.xlsx`) 并保存到当前文件夹中。 希望这个示例可以帮助你理解如何使用 Node.js 将 MySQL 数据导出为 Excel 文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值