Node.js CSV导入功能,上传并读取

CSV是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。
作者认为使用CSV作为数据导入的媒介是非常合适的。
读取CSV文件的内容就显得非常重要,然而相关的好文章真是非常稀少。
http://blog.csdn.net/zdb330906531/article/details/51627526
本文为原创文章,欢迎转载,注明出处。

extjs界面设计如下:
这里写图片描述
上传按钮外需要有form标签,submit的时候,添加属性

enctype:'multipart/form-data'

调整按钮样式:
这里写图片描述

xtype: 'filefield',
buttonOnly: true,
hideLabel: true,
buttonText: '导入CSV',
buttonConfig: {
    iconCls: 'icon-import',
    cls: 'x-btn-default-toolbar-small x-btn-default-toolbar-small-icon-text-left'
},

准备就绪后,在服务器读取CSV文件。

npm install node-csv --save

https://github.com/voodootikigod/node-csv

var filepath = "csv路径";
var csv = require('node-csv').createParser();
csv.parseFile(filepath, function(err, data) {
    if(err){ return next(err); }
    //删除临时文件
    require('fs').unlink(filepath, function(err){
        if(err){ return next(err); }
    });
    //输出data
    return res.send({ success:true, data:data });
});

后记:有时候运气也很重要,刚开始走了弯路,误入歧途,根据这篇文章
Nodejs:csv模块解析
http://blog.163.com/cjingzm@126/blog/static/118651119201361010715938/
http://csv.adaltas.com/
得到的数据不是我想要的数据,看文档也没有弄清楚什么意思,还耽搁了半天时间。偶然在底部发现这个
Node.js CSV导入功能,上传并读取_第1张图片
瞬间犹如醍醐灌顶,使用node-csv,获取的数据也正是我要的数据,中文发现有乱码现象,使用notepad++转换csv的格式为UTF-8 无 BOM格式编码即可
Node.js CSV导入功能,上传并读取_第2张图片

如果导入数据较大,本人不建议用上传文件的方式读取数据,你为什么不尝试一下直接传输字符串到服务器进行解析呢,批量插入5千条数据是妥妥的,效率相比上传会更快

2016年6月10日 重庆-传说

你可能感兴趣的:(Node.js)