最近做网站爬虫,爬取到的数据保存到一个name.json文件中,数据结构大概是这样的:
可以利用nodeJS把这个json文件转成xlsx文件输出,当然浏览器环境也可以做到,网上有相关的方法。
我这里使用了fs模块和第三方模块
json2xls
,所以要先安装
json2xls
:
npm install json2xls -D
// 在jsonToExcel.js中先引入核心模块
const fs = require('fs')
const json2xls = require('json2xls');
然后利用readFile
读取json文件,在回调函数中遍历数组,在对象temp
中定义表格需要展示的字段,再把temp
添加到一个新的数组jsonArray
。接着把jsonArray
作为参数去调用json2xls
方法,最后使用writeFileSync
输出xlsx文件。
fs.readFile('name.json','utf8',(err,data)=>{
if (err) throw err;
const json = JSON.parse(data);
const jsonArray = [];
json.forEach(function(item){
let temp = {
'类型' : item.type,
'问题' : item.question,
'答案' : item.trueAnswer
jsonArray.push(temp);
});
let xls = json2xls(jsonArray);
fs.writeFileSync('name.xlsx', xls, 'binary');
最近做网站爬虫,爬取到的数据保存到一个name.json文件中,数据结构大概是这样的:可以利用nodeJS把这个json文件转成excel输出,当然浏览器环境也可以做到,网上有相关的方法。我这里使用了fs模块和第三方模块json2xls,所以要先安装json2xls:npm install json2xls -D// 在jsonToExcel.js中先引入核心模块const fs = ...
第一次接触代码生成器用的是动软代码生成器,数据库设计好之后,一键生成后端 curd代码。之后也用过 CodeSmith , T4。目前市面上也有很多优秀的代码生成器,而且大部分都提供可视化界面操作。
自己写一个的原因是因为要集成到自己写的一个小工具中,而且使用 Node.js 这种动态脚本语言进行编写更加灵活。
代码生成器的原理就是: 数据 + 模板 => 文件 。
数据 一般为数据库的表字段结构。
模板 的语法与使用的模板引擎有关。
使用模板引擎将 数据 和 模板 进行编译,编译后的内容输出到文件中就得到了一份代码文件。
因为这个代码生成器是要集成到一个小工具lazy-
最近看了NodeJS相关的,在网上查了下结合AJAX的应用,感觉应用前景还是不错的。为什么用这个组合呢?
1.NodeJS不需要安装,拷贝过去就可以使用,而环境变量可以只配置在当前cmd窗口,运行方便。
2.通过HTML的ajax请求,可以实现在不同的服务器上,可跨域获取数据。
3.通信数据格式灵活,可以是xml、json、binary等,数据适合任何平台。
在说说我的环境,我使用的是公司提供的电脑,有很多限制,比如是域中电脑,操作权限低,无法安装任何软件,无法修改计算机配置,无法使用U盘等等。所以我就自己配置了一个nodejs的绿色版环境,只能在当前cmd窗口运行nodejs的相关环境;无
但是余留个问题,就是打开的excel的时候提示,文件名和扩展名不一致…
查了半天资料,没有办法解决
有的说: 返回xml格式的Excel数据,这种都会有提示的。你要没有提示,导出csv格式的数据或者服务器端用组件导出Excel才行。
或者使用插件来解决,方法地址如下,还没验证,留个印儿,有时间再说。
<a id="exportBtn">导出</a>
$("#exportBtn").click(function() {
上面的是获取table的数据变为json,然后调用导出excel的那个方法,把json数据下载导出为excel文件。所以我只用到了导出的功能。
导入导出的案例demo1:
PS:首先需要选择一个excel的文件导入,然后会在页面显示出转化的json的数据,如果开始没有导入excel文件的json数据是无法导出的。
<!DOCTYPE html>
<htm...
这里我用到的模块是“node-xlxs”,当然还有其他评价比较高的js-xlsx,但是使用有点复杂,所以这里演示node-xlxs的使用。
好吧直接上来贴代码
var xlsx2json = require("node-xlsx");
var list = xlsx2json.parse("./test.xlsx" );
console.log(list[0].data[0][2]);...
const cheerio = require('cheerio');
const html = '<html><head><title>My Page</title></head><body><h1>Hello World!</h1></body></html>';
const $ = cheerio.load(html);
const json = {
title: $('title').text(),
h1: $('h1').text(),
console.log(json);
输出结果为:
title: 'My Page',
h1: 'Hello World!',
希望这能帮到你!