|
110.42.8.5国内BGPnode+express导出excel服务器搭建网站表格
需要服务器咨询以下联系方式
联系人:火烧云小地瓜
扣扣:3007425289/2853898501
电话:18316411879
官网:http://huoshaocloud.com
服务承诺
1.提供一级电信运营商的资源。
2.可按用户要求进行IP地址指向的最优分配。
3.提供7×24小时技术支持服务。
4.如遇计划性中断,提前24小时通知。
5.根据客户需求提供流量监测,分析报告。
你找卖家,卖家再找公司,公司再找机房......
等处理好已经不是服务问题了,
而是时间,玩家流失的问题了,
这就和选老婆一样,老婆不会做家务也没用,
所以选服务器一定要选有售后保障的。
火烧云24小时在线售后!
您选择火烧云就不怕没人处理问题了!
node报表导出来excel的方法有多种,如今仍在不断升级的仅有node-xlsx excel-export:
(1)js-xlsx :通道
现阶段Github上star总数数最多的解决Excel的库,适用分析多种多样文件格式报表XLSX/XLSM/XLSB/XLS/CSV,分析  选用纯js完成,载入必须依靠nodejs或是FileSaver.js完成转化成载入Excel,能够转化成子表Excel,功能齐全,但入门难度系数稍大。不出示基础设置Excel报表api例单元格总宽,文本文档一些乱,不宜迅速入门
(2)node-xlsx :通道
根据Node.js分析excel文档数据信息及转化成excel文档,仅适用xlsx文件格式;
(3)excel-parser :通道
根据Node.js分析excel文档数据信息,适用xls及xlsx文件格式,必须依靠python,过重不太好用;
(4)excel-export :通道
根据Node.js将数据信息转化成导出来excel文档,转化成格式文件为xlsx,能够设定单元格总宽,API非常容易入门,没法转化成worksheet字表,较为单一,基本要素能够基础考虑;
(5)node-xlrd :
根据node.js从excel文档中获取数据信息,仅适用xls文件格式,不兼容xlsx,有点儿落伍,常见的全是XLSX文件格式。
实际应用-excel-export:
流程一:安裝软件excel-export  
cnpmi-sexcel-export
流程二:在js文件中引进
varnodeExcel=require('excel-export');
流程三:实际应用,方式 一是写固定不动的,方式 二是查询表的
/**
*免费下载excel
**/
router.get('/excel',function(req,res){
varname=encodeURI('检测表');
varconf={};
conf.name="aaa";//表下边姓名,默认设置不可以为汉语
/**
*表头数据信息
**/
letcolsArr=[
//{
//caption:'名字',
//type:'string',
//},{
//caption:'时间',
//type:'date',
//},{
//caption:'种类',
//type:'bool'
//},{
//caption:'手ji号',
//type:'number'
//}
{
caption:'编号',
type:'number',
},
{
caption:'id',
type:'string',
},
{
caption:'name',
type:'string',
},
];
conf.cols=colsArr;
/**
* 表内容数据
* */
let data = [
{
id:'1',
name:'zwh'
},{
id:'222',
name:'dddd'
},{
id:'839',
name:'23ddg'
}
]
let array =[];
for(var i=0; i<data.length; i++){
var temp = new Array();
temp[0] = i+1;
temp[1] = data.id;
temp[2] = data.name;
array.push(temp);
}
conf.rows = array
var result = nodeExcel.execute(conf);
res.setHeader('Content-Type', 'application/vnd.openxmlformats;charset=utf-8');
// res.setHeader("Content-Disposition", "attachment; filename=" + "Report.xlsx");
res.setHeader("Content-Disposition", "attachment; filename=" + name + ".xlsx");
res.end(result, 'binary');
});
/**
* 下载table表格
* */
router.get('/tableDown', function(req, res){
//模糊查询的sql SELECT * FROM bloginformation WHERE blogTitle LIKE ? OR blogContent LIKE ? OR blogLable LIKE ?
var params = req.query || req.params;
let sql = "SELECT * FROM `table`"; //查询列表所有的数据
let content = [];
let isMore = false;//是否有多个查询参数
if(params.name){
// 模糊查询两种方法直接在SQL语句后加 mysql.escape("%"+req.body.name+"%")
// sql += " WHERE product_name LIKE "+mysql.escape("%"+req.body.name+"%")
sql += " WHERE name LIKE ?";
content.push( "%"+params.name+"%" );
isMore = true;
}
if(params.age){
if(isMore){//true代表有多个参数
sql += "and age like ?";//and是两个条件都必须满足,or是或的关系
}else{
sql += " WHERE age LIKE ?";
}
content.push( "%"+params.age+"%" );
}
if(params.page || params.page_size){//开启分页
let current = params.page;//当前页码
let pageSize = params.page_size;//一页展示多少条数据
sql += " limit ?,?";
content.push((current-1)*pageSize,parseInt(pageSize));
}
db.query(sql, content,function(result,fields){
var name = encodeURI('人员表');
var conf ={};
// conf.name = "aaa";//表下面名字,默认不能为中文
/**
* 表头数据-类型必须和数据库要对的上
* */
let colsArr = [
{caption:'序号',type:'number'},
{caption:'id',type:'number'},
{caption:'name',type:'string'},
{caption:'age',type:'number'},
{caption:'phone',type:'string'},
];
conf.cols = colsArr;
/**
* 表内容数据
* */
let array =[];
result.forEach((item,index)=>{
var temp = [];
temp.push(index);
temp.push(item.id);
temp.push(item.name);
temp.push(item.age);
temp.push(item.phone);
array.push(temp);
})
conf.rows = array;
console.log(array);
var result = nodeExcel.execute(conf);
res.setHeader('Content-Type', 'application/vnd.openxmlformats;charset=utf-8');
res.setHeader("Content-Disposition", "attachment; filename=" + name + ".xlsx");
res.end(result, 'binary');
|
|