nodejs利用csv导出文件
2017-03-07 14:24
162 查看
小弟我才开始写博客,如果不合理之处请提出来,我改之,本文是关于nodejs中利用csv做文件的导出功能,在该例子中主要利用了fast-csv包对数据进行导出为csv文件格式,由于最近在做一个关于nodejs导出的excel的功能,在网上找了很久都没有找到合适的文档,最后找到了关于csv的导出,下面是关于nodejs代码
接下来的代码是关于csv导出的js,其中首先需要导包:fast-csv和fs包;
在最后附上调用该js文件的例子,该例子是写在router路由里面的,当页面点击导出的时候执行的代码,如下
在上面的代码中function(row){return {"编号":row.id,"名称":row.name,"姓名":row.title}返回的是csv文件的第一行表头,[{id:1,name:'test',title:'title1'},{id:2,name:'test',title:'title2'}]表示输出在csv文件中的内容。
注意:上面颜色相同的部分名称一定要一样,而且rows是一个json数组;
csv输出文件内容格式如下:
接下来的代码是关于csv导出的js,其中首先需要导包:fast-csv和fs包;
var fs = require("fs"); var csv = require("fast-csv"); module.exports = { /** * * @param req:request * @param res:response * @param getTitle:获取excel的第一行名称 * @param rows:每一行数据,用json数组表示 * @param filezName:导出文件名 */ downLoad:function(req,res,getTitle,rows,fileName){ //用于判断是否是最后一个数据信息 var endLine = false; var stream = null; var argus = process.argv.splice(2); if(!argus || argus.length == 0){ stream = fs.createWriteStream("D:/temp.csv"); }else{ stream = fs.createWriteStream(argus[0]); } stream.on("finish", function(){ res.download('D:/temp.csv',fileName+'.csv',function(){ fs.unlinkSync('D:/temp.csv'); //删除临时文件 }); }); //生成头部 var csvStream = csv.format({headers: true}) .transform(getTitle); csvStream.pipe(stream); rows.forEach(function(row){ csvStream.write(row); }); //关闭写入 csvStream.end(function(){ console.log("end"); }); } }
在最后附上调用该js文件的例子,该例子是写在router路由里面的,当页面点击导出的时候执行的代码,如下
var express = require('express'); var router = express.Router(); var fs = require("fs"); var downLoadUtil = require('../download');//这里引用 router.get('/exportCsv', function(req, res, next) { downLoadUtil.downLoad(req,res,function(row){ return {"编号":row.id,"名称":row.name,"姓名":row.title}; },[{id:1,name:'test',title:'title1'},{id:2,name:'test',title:'title2'},{id:3,name:'test',title:'title3'}],'testFile') }); module.exports = router;
在上面的代码中function(row){return {"编号":row.id,"名称":row.name,"姓名":row.title}返回的是csv文件的第一行表头,[{id:1,name:'test',title:'title1'},{id:2,name:'test',title:'title2'}]表示输出在csv文件中的内容。
注意:上面颜色相同的部分名称一定要一样,而且rows是一个json数组;
csv输出文件内容格式如下:
编号 | 名称 | 姓名 |
1 | test | title1 |
2 | test | title2 |
相关文章推荐
- 存储过程导出csv文件,利用xml对csv文件内容进行批量处理
- 利用 sqlplus spool 实现oracle 导出 csv 文件
- SpringMVC从数据库导入导出 CSV文件(利用multipart/form-data实现文件上传)
- SQLite实用武器库(2)利用import命令导入导出数据到CSV文件
- 利用utl_file将数据导出为csv文件 http://ningoo.itpub.net
- nodeJS 利用xlsx导出插件导出excel文件 (可以设置excel单元格颜色/宽度)
- 利用pig导出hbase文件为txt或者csv格式
- 利用vc实现数据表格导出到CSV文件
- 利用pig从HBase中导出csv格式文件执行日志
- SQL SERVER利用BCP命令在命令行下导出数据到csv文件中
- 利用windows脚本实现Oracle数据库定时导出文件
- 一个用servlet实现导出csv文件的实例
- 【完美解决ecside2.0RC1在weblogic8.1.6环境下导出xls,csv 文件为空的情况】~法老修正完整版!
- 利用HttpResponse来导出excel文件.
- ASP.NET 2.0,C#----利用GridView控件导出其他文件(导出Excel,导出Word文件)
- datagrid数据导出到excel文件给客户端下载的几种方法 (xls,csv,html)
- 利用groovy把表中数据导出成txt或csv
- asp.net2.0 利用Dataset,从数据库导出并生成无限级类别的XML文件
- 利用windows脚本实现Oracle数据库定时导出文件
- asp.net(c#) 导出csv文件