热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:nodejs+jsxlsx浣跨敤鏂囦欢娴佹柟寮忎笅杞絜xcel

篇首语:本文由编程笔记#小编为大家整理,主要介绍了nodejs+jsxlsx浣跨敤鏂囦欢娴佹柟寮忎笅杞絜xcel相关的知识,希望对你有一定的参考价值。鏍囩锛?ahre

篇首语:本文由编程笔记#小编为大家整理,主要介绍了nodejs+jsxlsx浣跨敤鏂囦欢娴佹柟寮忎笅杞絜xcel相关的知识,希望对你有一定的参考价值。


鏍囩锛?a href='http://www.mamicode.com/so/1/mic' title='mic'>mic   鏃犳硶   鏂囦欢娴?/a>   lob   绔欑偣   const   content   璐︽埛   ati   

鏈枃浠嬬粛鐢?Node.js 涓殑渚濊禆搴撴潵澶勭悊 Excel 鏂囦欢锛屼富瑕佸埄鐢╦s-xlsx搴撴潵澶勭悊 Excel 鏂囦欢銆?/p>

闂锛?/p>

銆€銆€1.鐢变簬鍏徃姝e紡鏈嶅姟鍣ㄧ殑鏉冮檺鏀剁殑寰堢揣锛岀珯鐐圭殑linux璐︽埛娌℃湁鍐欐潈闄愶紝鏃犳硶鍒╃敤鍐欐枃浠剁殑鏂瑰紡瀵煎嚭excel锛屼簬鏄煡璇㈣祫鏂欓噰鐢ㄦ枃浠舵祦鐨勬柟寮忓鍑恒€?/p>

銆€銆€2.鍥犱负涓嶇啛鎮塶odejs 瀵艰嚧鏃犻檺韪╁潙銆?/p>

js-xlsx github鍦板潃  https://github.com/SheetJS/sheetjs 

鍥犱负闇€瑕佸鍑篹xcel鏂囦欢 鍒欐牴鎹甮ithub涓婄殑鏂囨。鏄剧ず鍙互閲囩敤杩欎簺鏂规硶 鏈€绠€鍗曠殑濡傛灉娌℃湁绫讳技鏉冮檺鐨勫叾浠栭檺鍒?閲囩敤writeFile浠ュ啓鏂囦欢鐨勬柟寮忓鍑?/p>

鎶€鏈浘鐗? src=

濡傛灉涔熸湁绫讳技鐨勯檺鍒?writeFile杩欑鏂瑰紡灏变笉鏄渶浣抽€夋嫨锛屾煡璇㈣祫鏂欒繃鍚庯紝鍑嗗浠ユ枃浠舵祦鐨勬柟寮忚繘琛屽鐞?/p>

jsxlsx 涔熸彁渚涗簡寰堢畝鍗曠殑澶勭悊  鏍规嵁鏂囨。write鏂瑰紡灏卞彲浠ユ弧瓒虫垜鐨勯渶瑕?鍦╳rite_opts涓缃垜浠渶瑕佺殑绫诲瀷锛岃濡傦細

let buf = Excel.write(wb, {
type: 鈥榖uffer鈥?
bookType: 鈥榵lsx鈥?br />})
鍦ㄦ涔嬪墠鎴戜滑杩橀渶瑕佸皢鎴戜滑瑕佸鍑虹殑鏁版嵁瑁呰浇濡傚伐浣滆〃涓細

let ws = Excel.utils.aoa_to_sheet(data); //data灏辨槸鎴戜滑鐨勬暟鎹?br />let wb = Excel.utils.book_new()锛?br />Excel.utils.book_append_sheet(wb, ws, 鈥榅X鏁版嵁鈥?锛?br />鍦ㄧ粡杩囪繖浜涙楠や箣鍚?鎴戜滑瀵煎嚭鐨勫伐浣滃熀鏈笂宸茬粡瀹屾垚浜嗭紝浣嗘槸鍒繕浜嗗洜涓烘槸閲囩敤鏂囦欢娴佺殑鏂瑰紡鐩稿簲鐨勮缃篃瑕佸姞涓?/pre>

ctx.set(鈥楥ontent-disposition鈥? 鈥榓ttachment; filename=鈥?+ fileName);
ctx.type = "xlsx"
ctx.body = buf

鍓嶇鍦ㄦ帴鏀跺埌鍚庣杩斿洖鐨勬枃浠舵祦鏃讹紝鍒╃敤Blob杩涜鐩稿簲鐨勫鐞嗭細

const data = res.data;
const filename = res.headers[鈥榗ontent-disposition鈥榏.split(鈥?鈥?[1]
// console.log(res.headers)
const url = window.URL.createObjectURL(
new Blob([data], {
type:
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
})
);
const link = document.createElement("a");
link.style.display = "none";
link.href = url;
link.setAttribute("download", filename);
document.body.appendChild(link);
link.click();
document.body.removeChild(link);


推荐阅读
  • Node.js 配置文件管理方法详解与最佳实践
    本文详细介绍了 Node.js 中配置文件管理的方法与最佳实践,涵盖常见的配置文件格式及其优缺点,并提供了多种实用技巧和示例代码,帮助开发者高效地管理和维护项目配置,具有较高的参考价值。 ... [详细]
  • 本文介绍了如何通过命令行有效地终止所有 Node.js 进程实例,以解决因端口冲突或其他服务冲突导致的问题。 ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 本文介绍了 Vue 开发的入门指南,重点讲解了开发环境的配置与项目的基本搭建。推荐使用 WebStorm 作为 IDE,其下载地址为 。安装时请选择适合您操作系统的版本,并通过 获取激活码。WebStorm 是前端开发者的理想选择,提供了丰富的功能和强大的代码编辑能力。 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 本文探讨了Node.js后端开发的基础知识,包括模块源码的使用方法、前后端源码的区别以及如何在命令行环境中编译Node.js源代码。 ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 理解浏览器历史记录(2)hashchange、pushState
    阅读目录1.hashchange2.pushState本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变 ... [详细]
  • 大家好,我是李白。本文将分享一个从零开始的全栈项目,涵盖了设计、前端、后端和服务端的全面学习过程。通过这个项目,我希望能够帮助初学者更好地理解和掌握全栈开发的技术栈。 ... [详细]
  • 单元测试:使用mocha和should.js搭建nodejs的单元测试
    2019独角兽企业重金招聘Python工程师标准BDD测试利器:mochashould.js众所周知对于任何一个项目来说,做好单元测试都是必不可少 ... [详细]
  • 利用 JavaScript 和 Node.js 验证时间的有效性
    本文探讨了如何使用 JavaScript 和 Node.js 验证时间的有效性。通过编写一个 `isTime` 函数,我们可以确保输入的时间格式正确且有效。该函数利用正则表达式匹配时间字符串,检查其是否符合常见的日期时间格式,如 `YYYY-MM-DD` 或 `HH:MM:SS`。此外,我们还介绍了如何处理不同时间格式的转换和验证,以提高代码的健壮性和可靠性。 ... [详细]
  • 在Eclipse中提升开发效率,推荐使用Google V8插件以增强Node.js的调试体验。安装方法有两种:一是通过Eclipse Marketplace搜索并安装;二是通过“Help”菜单中的“Install New Software”,在名称栏输入“googleV8”。此插件能够显著改善调试过程中的性能和响应速度,提高开发者的生产力。 ... [详细]
  • Node.js 中的椭圆曲线 Diffie-Hellman 密钥交换方法 `crypto.createECDH()` 使用详解 ... [详细]
author-avatar
手机用户2502937923
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有