最近在做一个将mysql数据库导出的csv数据文件处理后再导入到mysql的脚本。发现在用node-xlsx插件读取csv文件的时候,读取文件中文为乱码:
var xlsx = require('node-xlsx');
var channel = xlsx.parse("data/t_gd_gantry1.csv");
var channelData = channel[0]
var channelDataStr = channelData.data
console.log(channelDataStr)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191228113943865.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1emhlbnY1,size_16,color_FFFFFF,t_70)
在网上找了下解决方法,其实很简单,将csv文件用记事本打开,选择另存,编码格式选为 UTF-8 重新保存即可
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191228113514278.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191228113546295.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1emhlbnY1,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191228114042356.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1emhlbnY1,size_16,color_FFFFFF,t_70)
重新读取另存的编码格式为utf-8格式的csv文件,中文已经可以正常读取了:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191228113855806.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2h1emhlbnY1,size_16,color_FFFFFF,t_70)
最近在做一个将mysql数据库导出的csv数据文件处理后再导入到mysql的脚本。发现在用node-xlsx插件读取csv文件的时候,读取文件中文为乱码:var channel = xlsx.parse("data/t_gd_gantry1.csv");var channelData = channel[0]var channelDataStr = channelData.datacons...
Modbus串行
NodeJS的MODBUS-RTU(串行和TCP)的纯JavaScript实现。
Modbus是一种串行通信协议,于1979年首次使用。Modbus简单,可靠,公开发布,免版税,易于部署和维护。
该软件包使Modbus通话变得轻松有趣。
npm install modbus-serial
如果要安装,请在npm install上尝试这些选项以进行构建
--unsafe-perm --build-from-source
我可以用这个模块做什么?
通过该课程,可以轻松有趣地与电子设备(例如灌溉控制器,协议机器人和机器人)进行通信。 它与使用串行线的设备(例如RS485,RS232)进行通讯。 许多工业电子设备都实现了Modbus。 Arduino也可以使用modbus,您可以使用modbus控制您的项目和机器人。
用于Modbus从站的Arduino库:
## 使用nodejs中node-xlsx库进行excel的生成操作 ##
近日,应领导要求,从网上抓了一大批数据存入了数据库,可是妈妈批 ,市场妹子要的是excel表格啊,毕竟妹子的话还是要听的(关键人家语气蛮好的),就从网上查一些资料。可是查来查去发现很多都是复制粘贴,说实话真的讨厌这样行为,代码好歹你自己先跑跑,加点注释,有些人的代码你确定你自己跑过? 就发到网上坑人,各种耽误别人的时间。
nodejs中生成excel的库很多,在尝试后,个人认为对于简单的需求(按行添加),使用node-xlsx就足够了。
1.因为属于第三方模块,所以肯定要npm一下,然后引入。
npm instal
从
文件/缓冲区解析
xlsx,输出工作表数组
import
xlsx from '
node-
xlsx' ;
// Or var
xlsx = require('
node-
xlsx').default;
// Parse a buffer
const workSheetsFromBuffer =
xlsx . parse ( fs . readFileSync ( ` ${ __dirname } /myFile.
xlsx` ) ) ;
// Parse a file
const workSheetsFromFile =
xlsx . parse ( ` ${ __dirname } /myFile.
xlsx` ) ;
建立一个
XLSX
import xl
今天在使用node导出Excel表格时,发现导出的文件名称为乱码,就去网上找解决方案。
参考文章:nodejs导出excel(解决中文文件名乱码)
在查看了上述文章后,按照文中所说在自己的代码filename后加上了*,结果就真的解决了乱码的问题。
但是还没高兴多久,就发现又有问题了。我这是火狐浏览器下测试的,而当我换成chrome,发现导出的文件名都不正常了,变成了我设置的变量...
// filePath为文件路径
const filePath = 'D:/demo.csv';
const stream = fs.createReadStream(filePath, { encoding: 'binary' });
let data = '';
之前有个项目中使用到了一个前端的download.js库,主要是用来拼接内容然后生成一个.txt或者.csv等文件让用户下载,不过目前这个库不支持了chrome和safari等webkit内核的浏览器了。而且下载的内容如果有中文字符的话还有乱码的现象。
用 Node.js 生成 csv 文件
想使用Node.js来生成 csv 文件...
node-xlsx 模块文档
当然node 还有一个模块叫 node-xlsx,也可以对excel文件进行读写,但是个人感觉本文主题的这个模块更加简单实用,主要针对excel。node-xlsx 还可以处理除excel之外的 其他文件(比如:csv,等)
const xlsx = require('xlsx');
// const nxlsx = require('node-xlsx');
const fs = require('fs');
let r
在做一些小工具的时候发现nodejs读取某些csv文件中的中文会出现乱码,试了ANSI也不行,猜想生成时应该是GBK编码,但是nodejs原生读取文件又不支持GBK,那么现在我们就要借助一个库:iconv-lite
// filePath为文件路径
const stream = fs.createReadStream(filePath, { encoding: 'binary' });
let d...