当前位置: 首页 > 编程日记 > 正文

node简单实现excel文件下载

1.利用csv格式兼容实现

csv是一种利用','、'\t'、'\n'等分隔符存储的文本文件,excel可兼容打开,利用此原理,代码实现如下:

app.use(route.get('/export', async ctx => {ctx.res.setHeader('Content-Type', 'application/vnd.ms-execl');ctx.res.setHeader("Content-Disposition", "attachment; filename=" + "answer_data.xlsx");let arr = [{"q": "问题1","answer": "答案1"}]//xls兼容csvlet content = '';for (let i = 0, len = arr.length; i < len; i++) {content += arr[i]['q'];content += '\t';content += arr[i]['answer'];content += '\t';content += '\t\n';}ctx.body = content;
}));

2.使用库文件

excel是使用xml格式进行存储,在传输过程总是用zip进行压缩,具体可以查看sheet.js、excel-export源码实现,excel的xml格式具体可以见Introduction to Excel XML
刚开始如引入export-excel来实现文件下载

    conf.stylesXmlFile = "styles.xml";conf.name = "sheeName";conf.cols = [{caption:'姓名',type:'string'}, {caption: '年龄',type: 'string'}];conf.rows = data;//data = [{name: '', age: ''}]let  result = nodeExcel.execute(conf);//const nodeExcel = require('export-excel');ctx.res.setHeader('Content-Type', 'application/vnd.openxmlformats');ctx.res.setHeader("Content-Disposition", "attachment; filename=" + "demo.xlsx");

但是发现其源码中引入的collection模块给Array.portotype添加了find方法,与es6实现的find方式冲突,因此放弃使用,选择了js-xlsx。

转载于:https://www.cnblogs.com/zsblogs/p/8908662.html

相关文章:

儿科医生的眼泪,全被数据看见了

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑作者 | AlfredWu来源 | Alfred数据室&#xff08;ID:Alfred_Lab&#xff09;《人间世》第二季第8集《儿科医生&#xff1a;坚守&#xff0c;还是逃离&#xff1f;》把儿科医生的辛苦与挣扎…

[毕业生的商业软件开发之路]C#类型样式

近期开始接触到在校学生、高校实习生和毕业生&#xff0c;在此说一下笔者对这些徘徊在职场门口的学生一些建议,希望能给这些初学者进入软件开发行业带来一些帮助,使得毕业生能更顺利的进入软件开发公司开始职场生涯&#xff0c;人生来一个完美的转弯。 -----------------------…

特斯拉被曝储存大量未加密个人数据 | 极客头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑编译丨王哲来源丨猎云网&#xff08; ID&#xff1a;ilieyun&#xff09;编者按&#xff1a;特斯拉是否明确界定了数据安全的目标&#xff1f;它现有的规则又在保护哪些人&#xff1f;如果…

【Linux】neocomplcache disabled: “sudo vim“ is detected and $HOME is set to your user‘s home

1、问题描述 使用sudo vim时&#xff0c;弹出提示&#xff1a; neocomplcache disabled: "sudo vim" is detected and $HOME is set to your users home. You may want to use the sudo.vim plugin, the "-H" option with "sudo" or set alwa…

016 | 漫谈区块链共识机制

原创文章&#xff0c;转载请注明&#xff1a;转载自Keegan小钢 并标明原文链接&#xff1a;http://keeganlee.me/post/blockchain/20180425 微信订阅号&#xff1a;keeganlee_me 写于2018-04-25 专栏地址&#xff1a;xiaozhuanlan.com/fullstack 共识机制是区块链的一个核心特征…

临危不乱,.Net+IIS环境经常出现的问题及排障。

http://www.cnblogs.com/CoreCaiNiao/archive/2011/08/02/2123991.html

零门槛!手把手教你打造AI应用

如你所见&#xff0c;聊天机器人已经逐渐渗透到生活的方方面面。它可以提供生活娱乐方面的服务&#xff0c;比如查询音乐、地图、天气&#xff0c;做心理测试&#xff0c;甚至 Google 的 Duplex 技术还能让你通过机器人进行订餐&#xff0c;当然还有很多能跟你谈天说地闲聊胡扯…

【Qt】启动QtCreator时报错:Cannot mix incompatible Qt library (version ) with this library (version...

1、问题描述 当启动QtCreator时报错(我的Qt版本是Qt5.6.3): Cannot mix incompatible Qt library (version 0x50603) with this library (version 0x50601) Aborted (core dumped)2、原因分析 原因是QtCreator使用的Qt库版本是5.6.1,而环境中配置的Qt库版本是5.6.3 1)Q…

利用IIS作为宿主 发布你的WCF Service(转)

http://blog.csdn.net/blacksource/article/details/3942130最近公司的一个需求&#xff0c;涉及到WCF开发。在网上找了些资料&#xff0c;大都是利用单独的应用程序、或者Windows服务作为WCF Service的host。其实WCF还提供一种方式&#xff0c;和以前的Remoting比较类似&#…

旷视提出AutoML新方法,在ImageNet取得新突破 | 技术头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑来源 | 旷视研究院 近日&#xff0c;来自旷视研究院的郭梓超、张祥雨、穆皓远、孙剑等人发表一篇新论文“Single Path One-Shot Neural Architecture Search with Uniform Sampling”&a…

9.QT-标准对话框

Qt提供的可复用的标准对话框,全部继承自QDialog类,如下图所示: QMessageBox&#xff1a;信息对话框&#xff0c;用于显示信息、询问问题等&#xff1b;QFileDialog&#xff1a;文件对话框QColorDialog&#xff1a;颜色对话框QInputDialog&#xff1a;输入对话框(允许用户输入一…

【Python】解决print不能立即打印的问题

1、问题描述 在Python中使用print打印hello world时&#xff0c;终端不显示 def hello():print("hello world!")2、原因 因为标准输入输出stdin/stdout有缓冲区&#xff0c;所以使用print不能立即打印出来&#xff0c;作为刚接触Python的菜鸟&#xff0c;迷瞪了半…

windows mobile做一个摄象头预览程序

zdirectshow的原理大概大家都知道,基本就是用微软封装的接口来实现硬件无关性,但是最终调用的接口都要在驱动层有对应的实现: 为了更清楚地演示directshow的数据传输过程,我必须说明的这个程序的基本流程。我采用的是vs2005 windows mobile 6。0 professional 仿真模拟器&…

初学者的机器学习入门实战教程!

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑作者 | Adrian Rosebrock译者 | kbsc13&#xff0c;京东算法工程师&#xff0c;研究领域计算机视觉来源 | 机器学习与计算机视觉&#xff08;ID&#xff1a;AI_Developer&#xff09;这是…

【Qt】调用Python函数:无参数、单个参数、多个参数、数组参数

一、链接配置 如果缺少头文件需要安装python3-dev: sudo apt-get install python3-dev链接libpython3.4库,添加头文件路径,以Qt为例: INCLUDEPATH += /usr/include/python3.4 LIBS += -L /usr/lib/python3.4/config-3.4m-x86_64-linux-gnu -lpython3.4二、头文件 因为p…

分布式系统的问题

本文内容翻译自《Designing Data-Intensive Applications》一书的第8章。 近几章主要介绍系统如何处理错误。例如&#xff0c;我们讨论了副本故障转移&#xff0c;复制滞后和事务的并发控制。当我们理解实际系统中可能出现的各种边界情况时&#xff0c;我们就能更好地处理它们。…

php-cgi占用cpu资源过高的解决方法

转的网上的&#xff0c;不过对PHP-CGI菜鸟的人&#xff0c;还是有点帮助的。 1. 一些php的扩展与php版本兼容存在问题&#xff0c;实践证明 eAccelerater与某些php版本兼容存在问题&#xff0c;具体表现时启动php-cgi进程后&#xff0c;运行10多分钟&#xff0c;奇慢无比&#…

请收下这份NLP热门词汇解读

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」&#xff0c;购票请扫码咨询 ↑↑↑本文转载自微软研究院AI头条&#xff08;ID:MSRAsia&#xff09;编者按&#xff1a;在过去的一段时间&#xff0c;自然语言处理领域取得了许多重要的进展&#xff0c;Transformer、BERT、…

【Ubuntu】dpkg: 处理软件包 XXXX (--configure)时出错解决方法

1、使用apt-get --purge remove删除安装包时报错 dpkg: 处理软件包 python-gflags (–configure)时出错&#xff1a; 子进程 已安装 post-installation 脚本 返回了错误号 1 正在设置 python-sklearn (0.14.1-2) … Traceback (most recent call last): File “/usr/bin/pycom…

c#devexpress GridContorl添加进度条

demo 的实现图 下边是步骤和代码 1定义 时钟事件,定时的增加进度条的增量. 2: 添加进度条 3;定义字段属性 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; …

信达充值旗舰店

在淘宝上新开了一个话费 游戏点卡充值的小店&#xff0c;以后大家话费没了可以联系我啊&#xff0c;速度还是蛮快的&#xff0c;都是赔本卖的只想提高点信誉&#xff0c;所以价格也是最最低的了&#xff0c;感谢大家的支持&#xff0c;多多帮忙啊^_^ http://sjzxinda.taobao.co…

完整代码+实操!手把手教你操作Faster R-CNN和Mask R-CNN

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」全日程揭晓&#xff0c;请扫码咨询 ↑↑↑机器视觉领域的核心问题之一就是目标检测&#xff08;Object Detection&#xff09;&#xff0c;它的任务是找出图像当中所有感兴趣的目标&#xff08;物体&#xff09;&#xff0c…

【Dlib】使用dlib_face_recognition_resnet_model_v1.dat无法实现微调fune-tuning

1、问题描述 dlib官方使用resnet训练人脸识别&#xff0c;训练了300万的数据&#xff0c;网络参数保存在dlib_face_recognition_resnet_model_v1.dat中。 测试中识别lfw数据时&#xff0c;准确率能达到99.13%&#xff0c;但是在识别自己的数据时&#xff0c;准确率有点低&…

Visual Studio 2017 - Windows应用程序打包成exe文件(1)- 工具简单总结

最近有对一个Windows应用程序少许维护和修改。修改之后要发布新的exe安装文件&#xff0c;打包exe文件时&#xff0c;遇到了很头疼的问题&#xff0c;还好最后解决了&#xff0c;记录一下。 Visual Studio版本&#xff1a;Visual Studio 2017 Visual Studio 2017 打包插件 新建…

NET也有闭包

NET也有闭包在.NET中&#xff0c;函数并不是第一级成员&#xff0c;所以并不能像JavaScript那样通过在函数中内嵌子函数的方式实现闭包&#xff0c;通常而言&#xff0c;形成闭包有一些值得总结的非必要条件&#xff1a; 嵌套定义的函数。 匿名函数。 将函数作为参数或…

【opencv】ubuntu14.04上编译opencv2.4

参考博客 https://blog.csdn.net/c406495762/article/details/62896035 1、安装依赖库 sudo apt-get install build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install libv4l-0 libv…

1024块TPU在燃烧!BERT训练从3天缩短到76分钟 | 技术头条

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」全日程揭晓&#xff0c;请扫码咨询 ↑↑↑作者 | 琥珀出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;“Jeff Dean称赞&#xff0c;TensorFlow官方推特支持&#xff0c;BERT目前工业界最耗时的应用&#xff0c;计…

牵引力教育设计总监解密9大2018潮流UI设计趋向

作为一名紧跟时代潮流的UI设计师&#xff0c;设计的风格一定要紧跟上最新的设计趋势&#xff0c;因为更为有效且颇具趣味的响应式图标必将得到关注。同时&#xff0c;鲜艳丰富的色彩&#xff0c;精彩纷呈的插图设计都会博得用户眼球。这样你的设计更容易获得更多人的认可与热爱…

Android媒体相关开发应用程序接口

翻译自&#xff1a;http://developer.android.com/guide/topics/media/index.html MediaAndroid框架支持各种普通media类型的编解码&#xff0c;因此你可以很容易地把音频&#xff0c;视频和图片整合到你的应用程序中。通过使用MediaPlayer的接口&#xff0c;你可以播放各种音视…

Facebook开源图嵌入“神器”:无需GPU,高效处理数十亿级实体图形 | 极客头条...

点击上方↑↑↑蓝字关注我们~「2019 Python开发者日」全日程揭晓&#xff0c;请扫码咨询 ↑↑↑编译 | Major、一一出品 | AI科技大本营&#xff08;ID: rgznai100&#xff09;有效处理大规模图对于促进人工智能的研究和应用至关重要&#xff0c;但特别是在工业应用中的图&…